{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 实验报告：基于LeNet-5的FashionMNIST图像识别\n",
    "20221200556 杨鑫其\n",
    "## 实验目标\n",
    "- 使用PyTorch在FashionMNIST数据集上构建并训练LeNet-5卷积神经网络\n",
    "- 确保模型在FashionMNIST测试集上的分类准确率达到85%以上\n",
    "- 可视化训练集和测试集上的损失曲线及准确率曲线\n",
    "- 可视化测试集的预测结果、真实结果及对应图像\n",
    "## 数据集介绍\n",
    "FashionMNIST数据集是PyTorch官方提供的数据集，包含60,000个训练样本和10,000个测试样本。每个样本为28×28像素的灰度图像，像素值范围为[0, 255]，表示10类服装（如T恤、裤子、鞋子等）。相比MNIST，FashionMNIST具有更高的分类难度，适合测试卷积神经网络的性能。\n",
    "## 环境说明\n",
    "实验依赖PyTorch和Torchvision库，可通过以下命令安装（建议使用国内镜像以加速下载）：\n",
    "```bash\n",
    "pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ torch torchvision\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:53:40.871513Z",
     "start_time": "2025-06-13T06:53:37.549934Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用设备: cpu\n"
     ]
    }
   ],
   "source": [
    "# 导入必要的库\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 设置随机种子以确保结果可重复\n",
    "torch.manual_seed(42)\n",
    "\n",
    "# 设置设备\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "print(f\"使用设备: {device}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据加载与预处理\n",
    "加载FashionMNIST数据集，应用标准化变换，并创建数据加载器。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:53:40.918551Z",
     "start_time": "2025-06-13T06:53:40.873812Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集样本数: 60000\n",
      "测试集样本数: 10000\n"
     ]
    }
   ],
   "source": [
    "# 数据预处理\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor(),\n",
    "    transforms.Normalize((0.5,), (0.5,))  # 标准化到[-1, 1]\n",
    "])\n",
    "\n",
    "# 加载FashionMNIST数据集\n",
    "train_dataset = torchvision.datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform)\n",
    "test_dataset = torchvision.datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform)\n",
    "\n",
    "# 创建数据加载器\n",
    "train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)\n",
    "test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=1000, shuffle=False)\n",
    "\n",
    "# 数据信息\n",
    "print(f\"训练集样本数: {len(train_dataset)}\")\n",
    "print(f\"测试集样本数: {len(test_dataset)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## LeNet-5模型定义\n",
    "定义LeNet-5卷积神经网络，包含两个卷积层（带ReLU和最大池化）和三个全连接层。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:53:40.935056Z",
     "start_time": "2025-06-13T06:53:40.919551Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LeNet5(\n",
      "  (conv1): Conv2d(1, 6, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n",
      "  (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))\n",
      "  (fc1): Linear(in_features=400, out_features=120, bias=True)\n",
      "  (fc2): Linear(in_features=120, out_features=84, bias=True)\n",
      "  (fc3): Linear(in_features=84, out_features=10, bias=True)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "class LeNet5(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(LeNet5, self).__init__()\n",
    "        self.conv1 = nn.Conv2d(1, 6, kernel_size=5, stride=1, padding=2)  # 输入1通道，输出6通道\n",
    "        self.conv2 = nn.Conv2d(6, 16, kernel_size=5, stride=1, padding=0)  # 输入6通道，输出16通道\n",
    "        self.fc1 = nn.Linear(16 * 5 * 5, 120)  # 全连接层\n",
    "        self.fc2 = nn.Linear(120, 84)\n",
    "        self.fc3 = nn.Linear(84, 10)  # 输出层，10个类别\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = torch.relu(self.conv1(x))  # 卷积 + ReLU\n",
    "        x = torch.max_pool2d(x, 2)    # 最大池化\n",
    "        x = torch.relu(self.conv2(x))\n",
    "        x = torch.max_pool2d(x, 2)\n",
    "        x = x.view(x.size(0), -1)     # 展平\n",
    "        x = torch.relu(self.fc1(x))\n",
    "        x = torch.relu(self.fc2(x))\n",
    "        x = self.fc3(x)\n",
    "        return x\n",
    "\n",
    "# 初始化模型、损失函数和优化器\n",
    "model = LeNet5().to(device)\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)\n",
    "\n",
    "# 打印模型结构\n",
    "print(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型训练与评估\n",
    "训练模型20个epoch，记录训练和测试的损失及准确率，确保测试集准确率超过85%。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T07:02:40.126496Z",
     "start_time": "2025-06-13T06:53:40.936138Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "轮次 [1/20], 训练损失: 0.6755, 训练准确率: 74.62%, 测试损失: 0.4377, 测试准确率: 83.81%\n",
      "轮次 [2/20], 训练损失: 0.3864, 训练准确率: 85.75%, 测试损失: 0.3678, 测试准确率: 86.69%\n",
      "轮次 [3/20], 训练损失: 0.3250, 训练准确率: 88.00%, 测试损失: 0.3330, 测试准确率: 88.07%\n",
      "轮次 [4/20], 训练损失: 0.2910, 训练准确率: 89.21%, 测试损失: 0.3252, 测试准确率: 88.34%\n",
      "轮次 [5/20], 训练损失: 0.2684, 训练准确率: 90.14%, 测试损失: 0.3036, 测试准确率: 89.05%\n",
      "轮次 [6/20], 训练损失: 0.2524, 训练准确率: 90.57%, 测试损失: 0.3009, 测试准确率: 89.30%\n",
      "轮次 [7/20], 训练损失: 0.2401, 训练准确率: 91.02%, 测试损失: 0.3028, 测试准确率: 89.32%\n",
      "轮次 [8/20], 训练损失: 0.2263, 训练准确率: 91.64%, 测试损失: 0.2972, 测试准确率: 89.22%\n",
      "轮次 [9/20], 训练损失: 0.2168, 训练准确率: 91.91%, 测试损失: 0.2785, 测试准确率: 90.05%\n",
      "轮次 [10/20], 训练损失: 0.2043, 训练准确率: 92.38%, 测试损失: 0.2725, 测试准确率: 90.10%\n",
      "轮次 [11/20], 训练损失: 0.1970, 训练准确率: 92.67%, 测试损失: 0.2835, 测试准确率: 89.93%\n",
      "轮次 [12/20], 训练损失: 0.1868, 训练准确率: 93.00%, 测试损失: 0.2856, 测试准确率: 89.96%\n",
      "轮次 [13/20], 训练损失: 0.1820, 训练准确率: 93.16%, 测试损失: 0.2898, 测试准确率: 90.23%\n",
      "轮次 [14/20], 训练损失: 0.1743, 训练准确率: 93.46%, 测试损失: 0.2874, 测试准确率: 90.04%\n",
      "轮次 [15/20], 训练损失: 0.1658, 训练准确率: 93.64%, 测试损失: 0.3032, 测试准确率: 90.17%\n",
      "轮次 [16/20], 训练损失: 0.1589, 训练准确率: 94.04%, 测试损失: 0.2867, 测试准确率: 90.70%\n",
      "轮次 [17/20], 训练损失: 0.1547, 训练准确率: 94.20%, 测试损失: 0.2931, 测试准确率: 90.16%\n",
      "轮次 [18/20], 训练损失: 0.1470, 训练准确率: 94.49%, 测试损失: 0.2959, 测试准确率: 90.33%\n",
      "轮次 [19/20], 训练损失: 0.1387, 训练准确率: 94.80%, 测试损失: 0.3223, 测试准确率: 89.84%\n",
      "轮次 [20/20], 训练损失: 0.1352, 训练准确率: 94.78%, 测试损失: 0.3278, 测试准确率: 89.87%\n"
     ]
    }
   ],
   "source": [
    "# 训练模型\n",
    "num_epochs = 20\n",
    "train_losses = []\n",
    "train_accuracies = []\n",
    "test_losses = []\n",
    "test_accuracies = []\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    running_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "\n",
    "    for images, labels in train_loader:\n",
    "        images, labels = images.to(device), labels.to(device)\n",
    "\n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(images)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "        running_loss += loss.item()\n",
    "        _, predicted = torch.max(outputs.data, 1)\n",
    "        total += labels.size(0)\n",
    "        correct += (predicted == labels).sum().item()\n",
    "\n",
    "    train_loss = running_loss / len(train_loader)\n",
    "    train_accuracy = 100 * correct / total\n",
    "    train_losses.append(train_loss)\n",
    "    train_accuracies.append(train_accuracy)\n",
    "\n",
    "    # 测试模型\n",
    "    model.eval()\n",
    "    running_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "\n",
    "    with torch.no_grad():\n",
    "        for images, labels in test_loader:\n",
    "            images, labels = images.to(device), labels.to(device)\n",
    "            outputs = model(images)\n",
    "            loss = criterion(outputs, labels)\n",
    "            running_loss += loss.item()\n",
    "            _, predicted = torch.max(outputs.data, 1)\n",
    "            total += labels.size(0)\n",
    "            correct += (predicted == labels).sum().item()\n",
    "\n",
    "    test_loss = running_loss / len(test_loader)\n",
    "    test_accuracy = 100 * correct / total\n",
    "    test_losses.append(test_loss)\n",
    "    test_accuracies.append(test_accuracy)\n",
    "\n",
    "    print(f\"轮次 [{epoch + 1}/{num_epochs}], 训练损失: {train_loss:.4f}, 训练准确率: {train_accuracy:.2f}%, \"\n",
    "          f\"测试损失: {test_loss:.4f}, 测试准确率: {test_accuracy:.2f}%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 损失与准确率曲线可视化\n",
    "绘制训练和测试集的损失及准确率随epoch变化的曲线。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T07:02:40.673024Z",
     "start_time": "2025-06-13T07:02:40.128558Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36718 (\\N{CJK UNIFIED IDEOGRAPH-8F6E}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27425 (\\N{CJK UNIFIED IDEOGRAPH-6B21}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 25439 (\\N{CJK UNIFIED IDEOGRAPH-635F}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22833 (\\N{CJK UNIFIED IDEOGRAPH-5931}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26354 (\\N{CJK UNIFIED IDEOGRAPH-66F2}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 35757 (\\N{CJK UNIFIED IDEOGRAPH-8BAD}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32451 (\\N{CJK UNIFIED IDEOGRAPH-7EC3}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 35797 (\\N{CJK UNIFIED IDEOGRAPH-8BD5}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20934 (\\N{CJK UNIFIED IDEOGRAPH-51C6}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30830 (\\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+YAAAHUCAYAAAC3TTKoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC4X0lEQVR4nOzdd3xV9f3H8dfd9yY3e0FYYW8QguJALdS9i7sV3FqqtLbaKlotllqqtj9rtZW6Z9WquCrWUZyIqEyZsgkre+fmzvP74yaBmABJuMlNbt7PxyOP5J7xPd/PvSfJ/dzvMhmGYSAiIiIiIiIiUWGOdgVEREREREREujMl5iIiIiIiIiJRpMRcREREREREJIqUmIuIiIiIiIhEkRJzERERERERkShSYi4iIiIiIiISRUrMRURERERERKJIibmIiIiIiIhIFCkxFxEREREREYkiJeYiIiIiIiIiUWSNdgVEpH3ce++9B90/adIkjjvuOAAWLVrE559/ftDjb7311jaX39ZriIiISGz8T2/tNUS6GyXmIjHq+OOP59hjjz3g/i+++KLhZ5PJdNCkeP9j21J+W68hIiIisfE/vbXXEOlu1JVdREREREREJIqUmIuIiIiIiIhEkRJzERERERERkShSYi4iIiIiIiISRUrMRURERERERKJIibmIiIiIiIhIFCkxFxEREREREYkiJeYiIiIiIiIiUWSNdgVEpH0sWLCAzz777ID7x4wZ0/BzeXk599577wGPrays5Nhjj21z+W29hoiIiMTG//TWXkOkuzEZhmFEuxIiIiIiIiIi3ZW6souIiIiIiIhEkRJzERERERERkShSYi4iIiIiIiISRVFNzL1eL7fffjsTJkxg0qRJPPnkk80eN23aNIYOHdrka9asWR1cYxEREREREZHIiuqs7Pfddx+rV6/mmWeeYffu3dx6661kZ2dz2mmnNTruoYcewu/3NzxeuXIlN910Ez/+8Y87usoiIiIiIiIiERW1Wdlramo4+uijeeyxx5g4cSIA//jHP1i8eDHPPffcAc8LBoOcc845nHzyydx0000dVFsRERERERGR9hG1ruzr168nEAgwbty4hm25ubmsXLmSUCh0wPPmz59PeXk51157bUdUU0RERERERKRdRS0xLywsJCUlBbvd3rAtPT0dr9dLWVlZs+cYhsHjjz/O9OnTiY+P76CaioiIiIiIiLSfqI0x93g8jZJyoOGxz+dr9pwlS5awd+9eLrroonavn4iIiHRNxcWVHO5APZMJ0tISIlJWtMVKLLESB8ROLLESByiWzijW4jiUqCXmDoejSQJe/9jpdDZ7znvvvccJJ5xAcnJym6+rf9b7xEocoFg6o1iJA2InlliJA2Ijlpb+o5bWMwwidl9Esqxoi5VYYiUOiJ1YYiUOUCydUazEcShRS8yzsrIoLS0lEAhgtYarUVhYiNPpJDExsdlzPvvsM2688cbDuq7+WTcVK3GAYumMYiUOiJ1YYiUOiK1YREREpPuK2hjz4cOHY7VaWbFiRcO2pUuXMnr0aMzmptUqKSkhLy+P3NzcDqyliIiIiIiISPuKWmLucrk477zzmD17NqtWreLDDz/kySefZPr06UC49by2trbh+I0bN+JwOOjdu3e0qiwiIiIiIiIScVHryg4wa9YsZs+ezeWXX47b7WbmzJmccsopAEyaNIm5c+cydepUAIqLi0lMTMRkMkWzyiIiMcMwDEKh4EGXqOysTCaora3F7/d16q7sFou12V5gEj0tve+7yj3WEp01FrPZjNls0Xs7ERGinJi7XC7uvfde7r333ib7NmzY0OjxGWecwRlnnNFRVRMRiWmBgJ/y8hL8/tpDH9xJlZSYu8CHCiZSUjJwOFzRrojQ+vu+a9xjLdNZY7HbnSQmpmK12qJdFRGRqIpqYi4iIh3PMAyKi/diNptJSkrHYrF2yRYri8VEMNiJmv++xzAMqqrKKS0tJDOzt1rOo6wt931nv8dao7PFYhgGwWCAqqoyiov3kpnZu0v+HRIRiRQl5iIi3Uwg4McwQiQlZWC3N788ZVdgtZoJBDpfC+D+3O4kSko8BIMBzGZ7tKvTboqLi7n77rv54osvSElJYcaMGQ1D0f7whz/w3HPPNTr+zjvv5LLLLmu2rKeffponnniCqqoqTj/9dO68805crsPvcdCW+74r3GMt1TljcWCxWCgpyScQ8GOzxe7viIjIoSgxFxHppkwmteC2t+7QAmgYBjfccAOhUIhnn32W/Px8br31VtxuN6eccgqbN2/m5ptv5kc/+lHDOW63u9my3nvvPR5++GHuv/9+0tLSmDVrFvfffz933XVXxOqr+75z0eshIhKmv4YiIiLSZqtXr2b58uX85S9/YcSIEUyePJlrrrmGJ554AoDNmzczYsQIMjIyGr4O1AL+7LPPcvnllzN58mTGjBnD3XffzWuvvYbH4+nIkERERDqcEnMRERFps7y8PFJTU+nTp0/DtqFDh7J69WoqKyvJz88nJyfnkOUEg0G+/fZbJkyY0LDtiCOOwO/3s379+vaouoiISKehruwiIiLSZunp6VRWVuLxeBpawvfu3UsgEGDLli2YTCbmzZvHp59+SnJyMldeeWWjbu31Kioq8Hq9ZGZmNmyzWq0kJyezd+/eVtWpuREE3WBUQZdmMh36NarfHwuvZazEEitxgGLpjGItjkNRYi4iIiJtNnbsWDIzM5kzZw6//e1vKSws5KmnngJoSMwHDBjAZZddxtdff82dd96J2+3m5JNPblRObW14CTO7vfEEYHa7HZ/P16o6paUlNNlWW1tLSYkZi8WE1dryDoOtObaz64yxhEImzGYzKSnxOJ0tm5Svude3q4qVWGIlDlAsnVGsxHEoSsxFRKTLWL36Wz777GMAzGYTodC+5Z/i4+OZPv0qAB566AGs1qb/4jyeGqZPv5r09HQA3n//v2zevLHZaw0ePISTTjoVgPz8vbz44nM4HE0Th1AoxA03/OIwouraHA4Hf/3rX7npppvIzc0lLS2Na665hrlz53LyySczefJkkpOTARg2bBjbtm3jxRdfbJKYOxwOgCZJuM/na/Ws7MXFlRjfWxnM7/cRCoUIBo0Wz07eWWYy3/++/76W3vdXXXUNyclpQPvc908//fgB5wI48cTJjBgxqtl9waBBKBSitLQam83f7DH1TKbwG/TmXt+uJlZiiZU4QLF0RrEWx6EoMW+lYMhg9n/XM2FAOucNz4h2dUREIsIwDGo7OAFxWs2tnrU8GAwyY8ZMoGnStHLlioafTzhhMmPHHtHk/D17dhMKBRseZ2X14JRTTmv2WvuXFwqF+PGPp5OZmXXQ47qrMWPGsHDhQgoLC0lJSWHRokWkpKQ0O/v6gAED+PLLL5tsT05OxuFwUFRUxMCBAwEIBAKUlZWRkdG6/7eGQZM3cc29qTvUfW8NGQSCkf29ONz7/vtaft/vi6M97vtx4yY0e+3mjm1Oc69ZJI7t7GIllliJAxRLZ9T833SDXeW1fLW9lK92lLGj1IPFZMJqMWE1m7CYw9+tZnPjx432m+uO+f5+M8kuK6cOy8Rps3RYnErMW2lvZS3/XVfIoi2lSsxFJCYYhsE1L61k1e6KDr3u2OxEHrtkbLdYUiyWlZWVMWPGDP7xj380JNAff/wxRx11FA8++CDLly/n6aefbjh+/fr1DBgwoEk5ZrOZ0aNHs3TpUiZOnAjAihUrsFqtDBs2LOL11n0vItK1lNb4+HpHGV/tKOPr7aXsrvC26/XMJhNnj+rRrtfYnxLzVkpxhce+VXoDVHkDxNv1FIpI16cUQdoqOTmZmpoa7r//fmbMmMGXX37Ja6+9xvPPPw/Ao48+yhNPPMHJJ5/M559/zhtvvMGzzz4LhMd9V1ZWNiT0P/7xj7nrrrsYMmQImZmZzJ49m4suuqjVXdlbSve9iEjnVesP8sl3hXy4ajdLtpfyXWF1o/1Ws4nR2Ykc1TeZ4T3CXcUDQYNgKEQgZDT+ChoEQiGCzWwPb2t8TrzNwrH9Uzs0XmWVrRRnt+B2WKjyBims8hGfqqdQRLo2k8nEY5eM7RJd2aVzeuCBB/jd737H2WefTe/evXnwwQcZM2YMAA8++CB/+9vfePDBB+nVqxd/+ctfGDduHAALFixg1qxZbNiwAYAzzzyTXbt2cdddd+Hz+TjllFP49a9/3S51bsl9b7WYO0VXdhGR7iAYMlifX8mS7WV8taOUVbsr8Acb92EfnBHPkX2TOapfCuN6JRFn77iu5u1NWWUbZLodVHlrKKjykpMaF+3qiIgcNpPJhKsDx1FJbBkwYADPPfdcs/tOOukkTjrppGb3TZ06lalTpzbadt1113HddddFvI7NOdR9H57HQEm0iEh7MAyDHaUevtpRxlfbS/kmr4wqb7DRMdlJTib0SeKovilM6JtMWrz9AKV1fUrM2yAzwcGW4hoKKtt3XIOIiIiIiEis2FtRy7Kd5XxTN1Y8/3v5VILDyoS+yRzVN5mJOSmMG5RBcXFVTExidyhKzNsg0x3+pOb7N5KIiIiIiIiEW8R3ltWyfGc5y3aWsXxneZMJ22wWE2OzEzmqXwpH9UthWKYbizncU8lkolsN/VFi3gZZCeG1VgurfIc4UkREIskwQjzyyENA03XM7XZ7w3JNCxe+zxdffNbk/OrqqoY1nwF27cpr9jiAnJz+jZZ/eu65p4mLazp8yev1HnCZKJFI2P++/76W3vdXXXVNw+P2uO+//vrLA5Z57LHHN7tdRGJLyDDYWlzDsp3lLK/7KqpunC9ZTDA0K4HxvZOY2C+ZI3oldeiSZJ2ZyTC6Q8eAfYqKDn+B+tdX7eGPH2zk+AGp/N+PRkWmYlFgMkF6ekJEnpNoUyydT6zEAbETS30ce/YUU1S0h7S0nthsXXes1vfXMe+M/H4fxcXNP9f1r4dEXnO/qwd7LQ6kK9xjLdVZY2nN6xIrf4shdmKJlThAsbRFMGSwsbCqUSJeXhtodIzNYmJUjwTG9U5iXO8kRmcntnhVq1h5TVr6/14t5m2QWddinl+lruwiIiIiIhL7/MEQa/dWhpPwXeWs3FVBta/xZG1Oq5kx2YkNifjIHglqEW8hJeZtkJUQ/kS3sFJd2UVEREREJLaUe/zklXnYUephe6mHVbsr+HZ3Bd7v9byJt1vCSXivcCI+LMuNzWKOUq27NiXmbZDhDreYl3r8eAMhHFbdfCIiIiIi0nVU1gbIK/OQV+phR933+sff75JeL9lla2gNH98riUEZ8Q2TtcnhUWLeBklOKw6rGW8gRGGVl97JrmhXSUREREREpJFqXyCceO+XdO8orSWvzEOZx3/QczPcdvoku+iT4mJ4lpvxvZPJSXV1q5nSO5IS8zYwmUz0THKyrbiGwiqfEnMREREREYmqWn+QxdtK+WJrCbsqvWwpqKK45uDJd2qcjb4proYEfP+fXRob3qGUmLdRVmI4MS/QWuYiIiIiIhIFvkCIL7eX8sGGQj7dVEyNP9jkmBSXjT4pdYl3XdLdJ9lJ72QXbofSwc5Cr0Qb9UxyAlCgmdlFRERERKSDBIIhluwo44MNhXyyqYgq775kPCvBwQ+HpDNxcAYpVhO9k1wkOJXydQV6ldqoR1K4+3pBlWZmFxERERGR9hMIGSytS8Y/3lTUaHK2DLedHw7J4OShGYzqmYDFbIqJ9b+7GyXmbdQjMTwzu7qyi4iIiIhIpAVDBst3lvPhd4Us/K6I0v0ma0uNszUk42N7JWLWhGxdnhLzNtrXYq7EXEREREREDl/IMFi1q4IPNhTyv41FFFfv652b7LIxZXA6Jw/NYFzvJC1TFmOUmLdRwxhztZiLiIiIiEgbGYbB6j2V4WT8u8JGQ2UTnVYmD0rnpKHpTOibglXJeMxSYt5GPeoS8+JqH4GQoV8SEZEOsHr1t3z22ccAmM0mQqF9g+fi4+OZPv0qAB566AGs1qb/4jyeGqZPv5r09HQA3n//v2zevLHZaw0ePISTTjoVgPz8vbz44nM4HM4mx4VCIW644ReHEZXIwe1/339fS+/7q666huTkNKB97vunn34cj8fTbJknnjiZESNGHSg8kW7FHwyRV+ZhW3ENW0tq2FbiYeWucvZU7Gvsi7db+MHgdE4eksFR/ZKxWcxRrLF0FCXmbZTudmAxQdCAkmofmQmOaFdJRKTtDAMCzb+pbjdWF7RyTFwwGGTGjJnh061mAoFQw76VK1c0/HzCCZMZO/aIJufv2bObUGi/2WuzenDKKac1e639ywuFQvz4x9PJzMw66HHSxRzqvjfMsN89FhGHed9/X8vv+31xtMd9P27chGav3dyxIt1BlTfAtpIatpXUsLXY0/DzrjIPwWYmZIuzWThhUBonDcngmJwU7FYl492NEvM2sphNpLsd5Fd6KazyKjEXka7LMEie/yNse7/p0Mv6ex5J2Y/mtzpJEYkI3fcicpgMw6Co2sfW4pq6xNsTbgUvrqGo+sArN8XbLeSkxpGT6iInNY5BGfFM6JOM02bpwNpLZ6PE/DBkuu3kV3rJr/IxMtqVERE5HEoSpDvSfS8iLRQyDDYVVrN0ZzkbCqrYVpeMV/uCBzwnw22nX2oc/fdLwvunxZEeb8ekvz/yPUrMD0NmggP2VFKoCeBEpCszmcIteF2gK7tIxLTgvv/+cImI0H0v0iUYhsHWkhq+2VHO0rwyluaVNVo7vJ7FBL2SXfRPjQsn4WmuutbwONwOpVrScrpbDkN993UtmSYiXZ7JBLa4aNdCpGMd6r63msEU4cRcRDolwzDYUljFB6t2NyTjJTX+Rse4bGbG9kpibHYiA9LiyEmLo0+yS5OzSUQoMT8MmW47APlqMRcRERER6VJ2lXtYuqOcb+paxPdfpgzAYTUzJjuRCX2Sye2TxMgeCViVhEs7UWJ+GOpbzAurDjy5g4iIiIiIRN/eilqW5u1LxPdfogzAbjEzqmcCuX2SyO2TzOieiZodXTqMEvPDkOlWV3YRkY5kGCEeeeQhoOk65na7vWG5poUL3+eLLz5rcn51dVXDms8Au3blNXscQE5O/0bLPz333NPExTXt9uz1eg+4TJRIJOx/339fS+/7q666puFxe9z3X3/95QHLPPbY45vdLtJeDMOguNrHrvJa8so8rNxVwdK8MvLKahsdZzGbGNkjgQl9kpjQN5nJo3tRXVGD0cxyZiLtzWQY3evWKyqqPOxfNpMJ0tMTWLmpgHMf/xq7xcTnv5jU5WZXrI8jEs9JtCmWzidW4oDYiaU+jj17iikq2kNaWk9sNnu0q9Vm7TIxV4T5/T6Ki5t/rutfD4m85n5XD/ZaHEhXuMdaqrPG0prXJVb+FkPsxBLNOGr9QXaV1+77KvM0/Ly7vBZvM/e72QTDssKJeG6fZI7olUSc3RL1WCItVmKJtTgORS3mhyGjrsXcFzQorw2Q7LJFuUYiIiIiIl1fyDAoqvLVJdsedpXVNkrEiw+yTjiEk/AeCQ6yk5wMyXST2yeZ8b2TNFO6dFq6Mw+D3WomxWWj1OOnoNKrxFxEREREpA12lHpYtLWEr7eXklfmYXd5Lb7gwZtJ3Q4LvZNc9Ep20iup/iv8uEeCQxO1SZeixPwwZSY4wol5lZchme5oV0dEREREpNOr9QdZurOcxVtLWLS1hJ3fG/8N4TXCeyTWJdzJdUl3w89OEp1qFJPYocT8MGW67WwooMnyCiIiIiIiss/OMg9fbC3hi62lfJNX1mgcuNVs4ojeSRybk8LQTDe9kp1kJTixmrvWHE4ibaXE/DDVL5lWoLXMRaSL6WZzf0aFnuPOR69J56LXI7Z5AyGW7yzji62lLNpawo5ST6P9mW47xw1I5dicVI7sl0y8XamJdF+6+w9Tw5JpSsxFpIuwWMIz0Pp8Xux2R5RrE9uCwQAAZrPGOUab7vvOyecLv3+yWPSWNFbsLq+taxUv4esdZdTu1ypuMZs4olcix+akcuyAVAamxXW5VY1E2ov+Ch6mzITw0h6F6souIl2E2WzB5XJTVVUKgN3u6JJvjEIhE8FDTAwUTYYRorKyDLvdidlsiXZ12lVxcTF33303X3zxBSkpKcyYMYOpU6cCsGLFCv70pz+xYcMGMjMzueaaa7jwwgsPWNaECROorKxstG3ZsmXEx8cfVh3bct939nusNTpbLIZh4PN5qaoqxeVy68OrLswXCPHV9lIWbSnli60lbC2pabQ/Pd7Ocf3DifhRfZM1K7rIAeg34zDVL5mWX6UWcxHpOhITUwEakpSuyGw2Ewp1vnWZ92cymUlMTO2SH3y0lGEY3HDDDYRCIZ599lny8/O59dZbcbvdjBs3jmuvvZZLL72UP/3pT6xZs4ZZs2aRkZHBD37wgyZl5efnU1lZyYcffojT6WzYHhcXF5G6tva+7wr3WEt11lhcLnfD6yJdQyAYYn1BFUvzylm2s4yVuyqo9gUb9ltMMCY7kWP6p3Jc/1QGZ8TH9N9AkUhRYn6YstSVXUS6IJPJRFJSGgkJKQ3drbsSkwlSUuIpLa2mMw9RtVptMf+GdPXq1SxfvpwPP/yQPn36MGLECK655hqeeOIJzjvvPNLT0/nVr34FQE5ODkuWLOHtt99uNjHfvHkzGRkZ9OnTp13q2pr7vqvcYy3RWWOxWKxqKe8C/MEQa/dWsmxnOcvyylm5uxyPv/GHPGlxNo7pn8qx/VOZ2C9Zs6WLtIES88OUUdeVvdoXpNoX0KQVItKlmM1mzGZ7tKvRaiYTOJ1ObDZ/p0o0uqO8vDxSU1MbJdNDhw7lwQcf5N5772X48OFNzqmqqmq2rE2bNtG/f/92q2u9ltz3sXSPxVIs0v58gRBr9laybGcZS/PKWbW7otHs6QCJTivjeycxvk8SU0Zlk2k3YSK2P4QUaW/KIg9TvN1KvN1CtS9IYaWP+DQ9pSIi0n2kp6dTWVmJx+PB5XIBsHfvXgKBAImJieTk5DQcW1xczDvvvMPMmTObLWvz5s14PB6mTZvG1q1bGT58OLfffnurk/VIdFKoLyMWOjzESiyxEgd0rli8gRDf7q6oaxEv49s9lU0S8WSXrSERz+2TxMD0eMwmEyYTpKUlUFxc2eU/9OlMr8nhipVYYi2OQ1EWGQGZCQ62FteQX+UlJy0y4+BERES6grFjx5KZmcmcOXP47W9/S2FhIU899RQAfr+/4bja2lpmzpxJeno6F198cbNlbdmyhfLycn71q1/hdrt57LHHuOKKK3jnnXdwu90trlNaWsLhBdVOZUVbrMQSK3FAdGLx+IIs21HKki3FfLm1hBU7yvAFGyfi6W47E/uncfSAVCYOSGNQhhvzQdYT12vSOcVKLLESx6EoMY+ALHc4MS/UBHAiItLNOBwO/vrXv3LTTTeRm5tLWloa11xzDXPnzm1Ipqurq/nZz37Gtm3b+Ne//tXQsv59TzzxBH6/v2EG9j//+c+ceOKJfPTRR5x99tktrlMkWu9irSUwFmKJlTig42MJhgwWbS3htRV7WLK9lECo8UXT4+0NreG5vZPpl+pqND9GSUnzw0/0mnROsRJLrMVxKErMIyDDHR6nVlCpJdNERKT7GTNmDAsXLqSwsJCUlBQWLVpESkoK8fHxVFVVcc0117Bjxw6eeeaZRl3bv89ut2O37xv77XA46N27N/n5+a2qj2EQsTdxkSwr2mIllliJA9o/loJKL2+u3sub3+4lf7+JijPddsb3SWZ87yRy+yTTJ9nZZKLK1tRLr0nnFCuxxEoch6LEPAIyE+pmZleLuYiIdDNlZWXMmDGDf/zjH2RkZADw8ccfc9RRRxEKhbjxxhvZuXMnzz33HAMHDjxgOYZhcPLJJ/Ozn/2sYQ30mpoatm/fzoABAzokFpFYEDIMvtpeymsr9/DZ5mLql69Pclo5Z1QPzhnVo0mLuIhEX1QTc6/Xy913383777+P0+nkqquu4qqrrmr22A0bNjB79mzWrFlDv379uOOOOzj66KM7uMbNa0jMtWSaiIh0M8nJydTU1HD//fczY8YMvvzyS1577TWef/55Xn31VZYsWcIjjzxCYmIihYWFANhsNpKTk/H5fJSXl5OamorFYuEHP/gBDz30EL169SI1NZUHH3yQHj16cOKJJ0Y5SpHOr7TGx9ur85m/ag+7ymsbto/rlcjUsdlMHpyOw6rl6UQ6q6gm5vfddx+rV6/mmWeeYffu3dx6661kZ2dz2mmnNTqusrKSq666iilTpvCnP/2JN998kxtvvJH33nuPtLS0KNV+n8z6ruxV6souIiLdzwMPPMDvfvc7zj77bHr37s2DDz7ImDFjePDBBwmFQlx//fWNjj/qqKN47rnnWL58OdOnT+d///sfvXv35te//jVWq5Wbb76Zqqoqjj76aB599FEsFkuUIhPp3AzDYPmucuav3MPCjUX465rH3Q4LZ47I4kdjejIwPT7KtRSRlohaYl5TU8Mrr7zCY489xsiRIxk5ciQbN27khRdeaJKYv/7668TFxTF79mwsFgs///nP+eSTT1i9enWn+BQ90x1uMdfkbyIi0h0NGDCA5557rsn2J5544qDnTZw4kQ0bNjQ8djgc3Hbbbdx2220Rr6NILKmo9bNgbQHzV+5ha0lNw/YRPRI4f0xPTh6WgcumD7REupKoJebr168nEAgwbty4hm25ubnMmzePUCiE2byvq81XX33FD3/4w0afmL/22msdWt+DqU/MS2r8+AIh7OomJCIiIiIRZBgGa/ZWMn/lHt7fUNiw1rjLZua04ZlMHdOTYVndY1kpkVgUtcS8fubW/WdfTU9Px+v1UlZWRmpqasP2vLw8xowZw5133snChQvp1asXt956K7m5ua2+biTmufj+YvfJcVbsFhO+oEFRtZdeyc0vA9PZfD+OrkyxdD6xEgfETiyxEgfERixdue4i0nGqfQHeW1fAayv38F1hdcP2QenxnD+2J6cNz8Tt0HzOIl1d1H6LPR5Po6QcaHjs8zUeq11TU8Ojjz7K9OnTeeyxx3jnnXe4+uqreffdd+nZs2errhvJBer3L6tnsovtxTX4rFbS07vWp5WRfE6iTbF0PrESB8ROLLESB8RWLCIiEG4Z31HqYeXuCpbtLOej74qo8QcBsFtMnDw0g6ljsxndM0Ezq4vEkKgl5g6Ho0kCXv/Y6XQ22m6xWBg+fDg///nPARgxYgSLFi3izTff5Kc//WmrrhuJBeqbW+w+zWVjO/DdzlL6u22Hd4EO0lwcXZVi6XxiJQ6InVhiJQ6IjVjqYxCR7s0fDLGhoIoVuypYuauclbsqKPX4Gx3TN8XF+WN7cuaILJJcXeN9poi0TtQS86ysLEpLSwkEAlit4WoUFhbidDpJTExsdGxGRkaTNUxzcnLYs2dPq68byQXq9y8ro25m9vwKb5d7kxjJ5yTaFEvnEytxQOzEEitxQGzFIiLdQ2VtgG/3VLBx6W6+2FjImr2VDePF69ktJkb2SGBMrySOyUlhfO8ktY6LxLioJebDhw/HarWyYsUKJkyYAMDSpUsZPXp0o4nfAI444gi+/vrrRtu2bNnCWWed1WH1PZSshPqZ2bVkmoiIiIiE7a2oZcWuClbsKmfV7go2FVbz/c8Tk5xWxvZK4oheiYztlcSwTLcmExbpZqKWmLtcLs477zxmz57NH//4RwoKCnjyySeZO3cuEG49T0hIwOl0cskll/D888/z0EMPcc455/DGG2+Ql5fHueeeG63qN5FRNzN7gZZMExEREemWgiGDTUXVDV3SV+wqp6CZRps+yU4mDkxnWJqLsdlJ9Et1qUVcpJuL6hSOs2bNYvbs2Vx++eW43W5mzpzJKaecAsCkSZOYO3cuU6dOpVevXjz++OPcc889PProowwcOJBHH32UrKysaFa/kcy6FvOCSiXmIiIiIt1JrT/IS8t28fw3OymvDTTaZzGbGJrpbmgNH5OdSIbbTnp6AkVFXXeeDBGJrKgm5i6Xi3vvvZd77723yb4NGzY0epybm8v8+fM7qmqtllU3xry5T0VFREREJPb4gyHe+HYvT3y5g+Lq8HvAeLuF0dmJjM1O5IheSYzsmYDLZolyTUWks9OihxFS35W9qMpLMGRgMas7koiIiEgsChkG768vZN6ibewqrwUgO9HB9cflcMqwTKx6HygiraTEPELS4u1YTBA0oKTG15Coi4iIiEhsMAyDRVtL+Mfn29hYWA1AapyNq4/ux4/G9MBm0YRtItI2SswjxGI2kRZvp6DKR0GVEnMRERGRWLJ8Zzl//2wrK3dXAOB2WJh+ZB8uGd9LXdVF5LApMY+gzARHODGv9DKyR0K0qyMiIiIih2lDQRWPfL6NRVtLAHBYzVw8LpvpR/YhyWWLcu1EJFYoMY+gTLcDqNTM7CIiIiJdXF6ph39+sY331hcCYDHBuaN7cvXRfRtW4xERiRQl5hHUsGSaZmYXERER6ZIKq7w8vngHb67eSzAUXsvs1GEZXH9sDn1SXFGunYjEKiXmEZTZsGSaWsxFREREupJyj59nv87j5eW78QZCABzXP5UZk3IYmumOcu1EJNYpMY+gzLoJ39SVXURERKRr8PiDvLRsF89+nUeVNwjA2OxEbji+P+N6J0W5diLSXSgxj6D6ruyFajEXERER6dRq/UHeWp3PE19up6TGD8DgjHh+NimH4/qnYjJpLXIR6ThKzCMoo6Eruw/DMPQHXURERKSTWZ9fyZvf7uW/6wsaWsh7JTn56XE5nDIsA7Pev4lIFCgxj6D6tcu9gRDltQGStYSGiIiISNRV1Pr577oC3vx2L98VVjds75noYPqRfTh3dA9sFnMUaygi3Z0S8whyWM2kuGyUevwUVnmVmIuIiIhEScgwWJpXxpvf7uWjjUX4guEZ1m0WE5MHpXPO6B4c2TdZLeQi0ikoMY+wDLedUo+fgkofgzOiXRsRERGR7iW/0st/1uzl7dX57Cqvbdg+OCOec0b14LThmWo8EZFOR4l5hGUmOPiusJp8TQAnIiIi0iH8wRCfbSnhrW/3snhbCXXLjxNvt3Da8EzOGdWD4Vluzf8jIp2WEvMIq18yrVBLpomIiIi0q63FNbz57V4WrM2n1ONv2D6udxLnje7BlMHpOG2WKNZQpAMFfTg2vYU973MYeiL0OgPMjmjXSlpIiXmEZSbUz8yuxFxEREQk0mp8QT5YX8gb3+7l2z0VDdvT4u2cNTKLc0b1oG+KK4o1FOlYJm8FzrX/wrXycSzVe8MbN7xKStwf8Iy9mtqRl2E4EqNbSTkkJeYRVt9iXlDli3JNRERERGKDYRis3F3BBx9v5e2Vu6nxh5c5s5jguAFpnDu6B8f2T8VqVld16T7MlbtxrXoC55oXMPurAAjGZeIbeDqubR9gqdyNe/EfiVv6ELUjL8Mz9hpC8VlRrrUciBLzCGtIzNWVXUREROSw7Cj1sGBtPu+uK2D3fhO59U1xcc6oHpw5IpN0t7rqSvdiKVpL3PJ5ODa9hSkUACCQMoSacdfjHXIeJqsD17l/pnLxc7iWPYK1dCNxyx/BtfIJaodOxTNuBsGUgVGOQr5PiXmEZSbUt5grMRcRERFprbIaP+9vKOTddfms3lPZsD3OZuH00T05bUgaY7MTNZGbdC+GgS3vU+JW/BN73qcNm329jsFzxE/x9ZsMJvO+4612vMMvonboBdi3/Y+45f/AtudrXOtewrnuZXz9T6Fm/M8I9MiNQjDSHCXmEVY/xrzKG6TGFyTOrglHRERERA7GGwjx+ZZiFqwtYNHWEoJ106pbTDAxJ4Uzhmfxg8Fp9O6ZTFFRJYYR5QqLdJS6Cd3ilv8Ta/E6AAyTGe+gs/EccR2BzLEHP99kxtf/ZHz9T8a652vilj2CY9v7OLa+h2Pre/iyJ+IZ9zN8/aaAPuyKKiXmERZvtxJvt1DtC1JQ5SUnNS7aVRIRERHpdEKGwcpdFSxYm8//viui0hto2Dcs083pIzI5dVgmafHhRg/lDNKdNDehm2GNwzPi0vBY8cQ+rS4z0PNIKs48EkvJd7iW/xPnd/Ox716CffcSAqlDqRk3A+/gc8Fii3Q4YYaBuXovlvJthFzpBFMHt891uigl5u0g0+1ga0kNBZVKzEVERET2t72khgXrCvjv2nx2V+wb+peV4OC04ZmcMSKTAWnxUayhSPQcaEI3z5irwrOrO5MP+xrB1CFU/fAv1Ey8GdfK8LWsJRtI/N9NBJfch2fstXhG/Bjsbfg9NAxMnmIs5VuxlG3BWra17ufwd1PA03Cov+dReEZfjnfA6WCxH3ZcXZ0S83aQmWBna0kNhZqZXURERKRu3HgBC9YWsGbvvnHj8XYLUwanc8aILMb3ScKsZnGJEFNtGba9S7HmLwOLnUDKYIKpQwgm9mu/FuHDcKgJ3bBEfpLDkDub6uPupGbCz3Gufo64lU9gqdqNe9HdxH3zVzyjLscz5iqMuPQm55pqyxqS7/qk21K+DUvZFsy+ymauFmaYLIQSemOu2oVtz1fY9nxFMC6T2pE/oXbkTwjF94h4nF2FEvN2kOHWBHAiItJ9FBcXc/fdd/PFF1+QkpLCjBkzmDp1KgB5eXnceeedrFixguzsbG6//XYmTZp0wLL+85//8Ne//pXCwkImTZrEnDlzSE1N7ahQJIK8gRCfbS5mwdp8vthW2mjc+NE5qZwxIpMTBqbhtGk+HjlMhoG5Yge2vV9j2/01tr3fYC3Z0PyhZhvBpP4EUwcTSBlEMHUIgZTBhFIGAAntX9egH3NNAeaq3Viq9mCu2o0979OWTejWTgxHEp7cG/GMvQbnhtdwLZ+HtXwr8Uv/RtyKf1I77CJC7h77EvCyLZhrSw9cHiZCCb3Cz3Nyf4LJA/b9nNAHLDbM1XtxrnkB55oXsNQUEP/1A8QtfQjvgNOpHX05/p4Tu934FSXm7aB+ZvZ8LZkmIiIxzjAMbrjhBkKhEM8++yz5+fnceuutuN1uTj75ZG644QaGDBnCa6+9xocffsiNN97IggULyM7OblLWqlWruOOOO7j77rsZNmwY99xzD7NmzeKf//xnFCKTw7E+v5LfvLWWPft1VR+e5eb0EVmcMjSjYdy4tAPDgGAtJr8Hk78GU6Bmv+8eDLOFYGK/8BhlcxdNBYJ+rEVrsO39Btuer7Du+QZLTUGTwwLJAwj0mAAYWEq+w1qyEVOgBmvpd1hLv2P/NmjDZIaUHBKSBhFMGUQgZUg4eU8e1PIu3aEA5up8zFV7sFTtxlyXeFuq92Cu3I25eg/mmkJMRqjJqa2a0K29WJ3hluvhl2Df+l/ilv0DW8FKXGuea/bwYFxWXeLdvy7xrkvAk/qB1XnQS4Xie1Bz1M3U5M7EseW/uL59Gtuer3BuehvnprcJpA3DM/oKOHZ6OwTaOXXR38bOLcsd/mejruwiIhLrVq9ezfLly/nwww/p06cPI0aM4JprruGJJ54gISGBvLw8XnrpJeLi4hg4cCCLFy/mtddeY+bMmU3Kev755zn99NM577zzALjvvvuYPHkyeXl59OnT+omOJDoWrM3njx9sxBsIkeG2c+aILM4YkUX/NM270yqGgX37QqxFayDwvSTb72mScJv8NRCowRTwNJv4NSnebCWY2Ldpq2ZSf0IJ2R3SUttSJm8F1r1L6xLxr7HlL280VhnCLeGBzDH4e0zA3/NI/D0mNO2CbRjhpLk0nKRbSr/DWroJS8l3mL3lULIFR8kW2Pp+o9OC7l51LeyDCaYOxrAlYK4KJ9r7J+AHSrq/zzDbCLl7EozvGf6elEPt8IvbNKFbuzBb8A08E9+AM7DtXoxz7YtgsjRu+U7KwbC7D/9aFjvewefgHXwOlqK1uL59Gud387EWryfh49tg8Vzih12IZ9R0gskDDv96nZgS83bQ0JVdLeYiIhLj8vLySE1NbZQ4Dx06lAcffJClS5cyYsQI4uL2JWS5ubmsWLGi2bJWrlzJtdde2/C4Z8+eZGdns3LlylYl5pHo/VhfRiz0pOyoWAIhgwc/2cKLS3cBcFz/VP5w5jASnJF5u9mdXhNTbRnuT27HsfGtw7qOYXFgWF0YtrjwlzUOU9CLpXwbpqAXa9kWrGVbYHvT84JJOQSTcxonY8kDMOIyGyreLq+JYWCu3NXQEm7b8zWW4vWYaLxGXsiRRKDHBPzZR+LveSSBzDFgdTU6pkm1TCaMxGwCidkE+v2g8TU9haQGdlK1fRWWko0NLexmTxGWql1YqnZh3/HxoatvthGK7xFOuN3hxDvkzm74HkzIxnClNfvBR6Sexoi9LiYTgd7HUtX72OZ3H2bx3xfKGEH1lPuoOfZ2HOtfwfXt01jKt+Na+TiulY/j63sintFX4u83GcxdZwhMS18HJebtoL4ru8aYi4hIrEtPT6eyshKPx4PLFX5TvHfvXgKBAIWFhWRmZjY6Pi0tjb179zZbVkFBQauOP5C0tMiNE41kWdHWnrEUV3n55b+Ws3hLMQAzpwzilycNwWyOfBYd86/Jts9h/vVQsTPc1XzkVIhLBVsc2OPAFv+973HhrtZN9sdhMluaT55CIajYBSWbobjuq/7n0q3hpL1kQ/PjtO1uSO0PaYMgdSAk9yHNCEHQDwEvBH3hr4A3vC1Yty3gq/v5e8c12ucDbxXUFDW9bkp/6Hs09JkIfY/BnD4Eu9lM5AZFJAIDcQ84sfHmmhIo3ACF6/d993sgqRckZkNi7/D3pF6Q2AtTfCYWsxkLEO0p5rru70oC9P4VTLkJNi+Erx6Fje9j3/EJ9h2fQHJfOPIaGDct/LsRI5SYt4Osuhbzkho//mAIm6XzdAUSERGJpLFjx5KZmcmcOXP47W9/S2FhIU899RQAPp8Pu73x22a73Y7P1/xQr9ra2lYdfyDFxZUYxqGPOxiTKfymNhJlRVt7x7I+v5Jb3ljL3kovcTYLs08fypQh6ZSUVEX0OjH/mgT9xH31F1xL/44Jg2BSfypPeYhA1hEtLzgEeOu+qDnEwcmQmBv+6r9/GQHMlTvDE32V1c26Xb4VS9k2zJV5mHxVsPfb8Fc7McxWAukjCfQ8Cn/PcNd0I77xh3aUVEf0mge+v2wQPyr8lXOIQryAN7L1aotY+V0xmSBt8EkUp07EdPR2nKufxbn2JcxlO+CDuzAW3oN3yHl4Rl9BMHP0gQsyDAj5MQV9EPRjCnoh5MNU98GRKeivexz+oMgU9GHY4vH3Ojoi8zDUvx6HosS8HSS5rNgtJnxBg8IqH9lJB5/8QEREpKtyOBz89a9/5aabbiI3N5e0tDSuueYa5s6di8lkapJU+3w+nM7m/y86HI5mj69viW8pwyBib0YjWVa0tUcs767L5573w+PJ+6a4uP/cEQxIi2/X5ywWXxNL2RYSPpiJrWAlAJ7hl1A16e5wS3hHx2qyEkzMIZiYA30nN94X9GKpyGuUsLt8hXgDYFjsYLFjmG1gcWBYbHWP67bXfWGu+26x1X131J1jb3gcSB4Itu/93nfQ8xCL91dXZxgQSuxH9bF3Un3kLTg3vonz26exFa3Gue5lnOteJpCUAyZLOLluSLLDybgp1LZ5vypO+hveoVMjG8xBKDFvByaTiQy3g13ltRRUepWYi4hITBszZgwLFy6ksLCQlJQUFi1aREpKCn379mXRokWNji0qKmrSXb1eVlYWRUVFTY7PyMhot7pL2wRCBg99uoV/7TeefM4ZkRtP3m0YBs61L+H+7C5MAQ8hRxKVk+/DN/DMaNeseRYHwZTwrOUQbgl0pSdQWdS1W2alC7G5qB1xCbXDL8aavwzXqqdwbH4Ha/m2FhdhmCz7Pggy139oZGv0IVHIlYa/54T2i6MZ+uvZTjIT6hJzjTMXEZEYVlZWxowZM/jHP/7RkEB//PHHHHXUUYwdO5ZHH32U2trahlbypUuXkpub22xZY8eOZenSpQ1roO/Zs4c9e/YwdmyUlg6SZpXW+Lj9P+v4Jq8cgKsm9uG6Y3OwtMN48phWU0LCuz/DseVdAHy9jqPypAcIuZsuJSgi32MyEeiRS2WPXKpqZmMtXh/uhWG2YVgc+3pkNPTQqEu+zfZOO3GcEvN2klm3ZFqBlkwTEZEYlpycTE1NDffffz8zZszgyy+/5LXXXuP5559n5MiR9OzZk1mzZvGzn/2Mjz76iFWrVjF37lwg3E29vLyc1NRULBYLl156KdOmTeOII45g9OjR3HPPPfzgBz/QUmmdyIb8Km55cw17K724bGZmnz6MKYPTD32iNGLL+xwW/hJH5R4Ms43qib/BM+76TrVEmUhXYcSl44+bFO1qHDb99reTTC2ZJiIi3cQDDzxAXl4eZ599Ns888wwPPvggY8aMwWKx8I9//IPCwkKmTp3KW2+9xd///neys8MtgsuXL2fSpEns2bMHgHHjxvH73/+ev//971x66aUkJSU1JPESff9dV8DVL61gb6WXPslOnvrxOCXlrRX0Ev/FH0h881Ko3EMgeSBlF7yFZ/wMJeUi3ZxazNtJ/ZJpherKLiIiMW7AgAE899xzze7r168fzz//fLP7Jk6cyIYNjZdjmjp1akNXdukcNJ48MiwlG8MTvBWtDm/IvZKyCbdjWFs3uaGIxCb9RW0n9V3Z8yvVlV1ERES6prIaP7PeWcc3O8oAjSdvE8PAueZ53IvuxhSoJeRMoWrKn0k86gIoquz4WddFpFNSYt5O6lvMNfmbiIiIdEUb8qv49Vtr2FOh8eRtZfIUk7DwFhzbPgDA1+dEKn/4fxjurCjXTEQ6GyXm7SSjbox5UbWPYMjQJ8siIiLSZfx3XQF/eP87vIEQfZKd3H/uSAamx0e7Wl2KbcfHJPzvV1hqCjDMdqqPvR3PmKvAZEbvCkXk+5SYt5O0eDtmEwRDBqU1PtLrEnURERGRzur748mP7Z/CnDOGkei0RbVepppC7AXL4bs9uCqrIBSo+wpiCvkhFISQH5MRhFAAU8P+ACYjsG9/3XdCwfB2I0TImYLhSifkSiPkSicUl0bImYYRV78tDSyteB8XqCX+yz8Rt/Lx8MOUIVSc8jDB9BHt9OyISCxQYt5OrGYT6fF2Cqp8FFQpMRcREZHOrazGz+3vrOPruvHkV07sw/XRGE8e8GAtXI0tfznW/OXY8pdjqdzZsDsa7fYheyIh1/7J+r7vRn0y70rH5K8h4aNfYy1eB4Bn9BVUHXsHaII3ETkEJebtKMPtCCfmlV5G9EiIdnVEREREmrWzzMMNr6xid/148tOGMmVIRvtf2AhhKd3ckIBbC1ZgLV4XbvHe/zBMBFMHY+05itqgFcNsBbMVw2QBsw3MloZtmOv2m6x1222NvmPadz6AubYMk6cIs6cYc/33miJMdY9NRhCzrwKzrwLKt7YorJArncopf8GX88OIP2UiEpuUmLejzAQHa/ZWagI4ERER6bT2VtTys1dWsafCS++68eSD2mk8uammqFFLuLVgZTjh/Z5gXCaBrHH4s8YRyBpHIHMMOBJIT0+gqqgSo6NmMjdCmLzlDUm7qeZ7CbynCFNN/eMiTL5KfP1OonLyvRhxHfDBhojEDCXm7ah+ybSCKi2ZJiIiIp1PUZW3ISnvm+LinxeNidzwu6AXa8Gq/RLxFVgq85ocZlidBDLG4N8vEQ+5s8HUuAt9VCZMM5kxnCkEnSkEUwYd+ngjBCZz+9dLRGKOEvN2lFn3j62gUi3mIiIi0rmU1vj42avfkldWS89EB3+/YHRkknLDwLHpLeI//z2WmvzGuzARTBnckID7s8YRTB0CluhOLhcxSspFpI2UmLcjrWUuIiIinVFFrZ8bX/2WrcU1ZLrt/OPCMfRIdB52uZbSzbg/vQP7zs8BCDlT8feYsK9beuYYDEfiYV9HRCTWKDFvR5kJ4a7sherKLiIiIp1ElTfAz19bzXeF1aTG2fj7hWPonXyYs4b7PcQt/Rtxy+dhCvkxLA5qJvycmnE/bd1SYyIi3ZQS83ZU35U9v9KLYRiYTFEZHSUiIiICgMcf5Fevr2bN3kqSnFb+fsEYclLjDqtM+9YPcH92Z8OSZt5+U6g6fg6hpH6RqLKISLegxLwdZdQl5t5AiIraAEmuGBk/JSIiIl2ONxDiljfWsHxXBfF2Cw9dMJpBGW2ffd1ckYf7s9/h2PY+AEF3NlXH/x5f/1ObTNwmIiIHp8S8HTmsZpJdNso8fgqrfErMRUREJCp8gRC3vrWWr3aU4bKZeXDqKIZnJbStsKAP14pHif/mr5gCtRhmK54jrqN6wk1gO7zWdxGR7kqJeTvLcNsp8/jJr/Ie1qfSIiIiIm0RCBnc9PJyPt9SgsNq5oEfjWJsr6Q2lWXbuQj3p3dgLd0EgK/XMVSdcE94ZnUREWkzJebtLCvBwcbCai2ZJiIiIh0uGDK4+70NvLu2AJvFxP3njiC3T3KryzFX5xO/aA7OjW8AEHKlU3XcnXiHTFW3dRGRCFBi3s7qJ4Ar1JJpIiIi0oEMw2Duhxt5d20BVrOJuWcP55ic1NYVEgrg+vYZ4r76M2ZfJYbJTO2o6VRP/DWGo22t7iIi0pQS83aW4Q4vmVZQqSXTREREpGMYhsFfPtrMm9/uxWyCBy4+gmN6JWAYLS/Duncp7k9ux1a0BgB/5liqTpxLIHNMO9VaRKT7Mkfz4l6vl9tvv50JEyYwadIknnzyyQMeO2PGDIYOHdro66OPPurA2rZNZkLdkmlqMRcREZEOYBgGD3+2jZeX7wbgrlOHcPbY7Bafb6otxf3Rb0h57VxsRWsIOZKoPPFPlJ3/lpJyEZF2EtUW8/vuu4/Vq1fzzDPPsHv3bm699Vays7M57bTTmhy7efNm7r//fo455piGbUlJnb8LVZa6souIiEgHevzLHTz7dR4At500iLNG9WjZiUYI57p/E7/4Hsy1pQDUDruIqmNux4hLb6/qiogIUUzMa2pqeOWVV3jssccYOXIkI0eOZOPGjbzwwgtNEnOfz8fOnTsZPXo0GRkZUapx22QkqCu7iIiIdIznvs7j0S+2A/DLHwzg/EO0lJu8FVj3LsW29xvs2xdiK/wWgEDqUKpO/CP+7IntXmcREYliYr5+/XoCgQDjxo1r2Jabm8u8efMIhUKYzft62W/ZsgWTyUSfPn2iUdXDUj/5W6U3gMcfxGWzRLlGIiIiEov+vXw3f/t0KwA/m5TDj3N7Nz7AMDBX7MS252tse7/BtucrLMUbMLFv4HnIFk/Nkb/CM+YqsNg6svoiIt1a1BLzwsJCUlJSsNvtDdvS09Pxer2UlZWRmrpv1tAtW7bgdrv5zW9+w1dffUWPHj2YOXMmJ554YquvG4kVPerLaElZCU4r8XYL1b4ghVVe+qXGHX4FIqQ1cXR2iqXziZU4IHZiiZU4IDZi6cp1l87nzW/3cP/C8NriV03sw5UT+0IogLVoLba9X0PJClK2LcZSvbfJucHEfvh7Hom/5wR8OScTis/q6OqLiHR7UUvMPR5Po6QcaHjs8zXu9r1lyxZqa2uZNGkS1113HR988AEzZszg5ZdfZvTo0a26blpawuFVvA1l9UhysrmwGq/ZQnp65K4fKZF8TqJNsXQ+sRIHxE4ssRIHxFYsIm3133UF3PP+RtzU8KuhZVxs+wrbm99g27sMU6Cm4TgLYJitBNJHNSTi/h5HYsRnRq/yIiICRDExdzgcTRLw+sdOp7PR9p/97GdMmzatYbK3YcOGsWbNGv7973+3OjEvLq5s1VIhzTGZwm8GW1pWWpyNzcB3u8oYkuw4vItHUGvj6MwUS+cTK3FA7MQSK3FAbMRSH4NIW5mr9rBh2f8wVvyP/9i/Y7g5D/P2EGzfd0zInkigZy72gcdRnjgGX+Y4sLmiV2kREWlW1BLzrKwsSktLCQQCWK3hahQWFuJ0OklMTGx0rNlsbjID+4ABA9i0aVOrr2sYROxNXEvLyqgbZ15Q6e2UbyAj+ZxEm2LpfGIlDoidWGIlDoitWERaw7n2X8R/PItjjSDH7jd9TTChT7glvOdR+HtOIJg6FJPZTHp6Av6iStDvi4hIpxS1xHz48OFYrVZWrFjBhAkTAFi6dCmjR49uNPEbwG233YbJZGLu3LkN29avX8+QIUM6tM5tleWun5ldS6aJiIjI4bHlfYr741mYjCBrQv3YkzSO3GNOJZR9JKH4Fi6NJiIinYr50Ie0D5fLxXnnncfs2bNZtWoVH374IU8++STTp08Hwq3ntbW1AEyZMoW3336bN954g+3bt/Pwww+zdOlSLrvssmhVv1UyE+rXMteSaSIiItJ2lpKNJP73p5iMIK8FJzG31zxG/uRvBAafraRcRKQLi1piDjBr1ixGjhzJ5Zdfzt13383MmTM55ZRTAJg0aRILFiwA4JRTTuF3v/sdjzzyCGeddRYLFy7k8ccfp3fv3gcrvtNo6MpepRZzERERaRuTp4Skd67A7Kvg69AQfmdcz+2nDMFqierbORERiYCodWWHcKv5vffey7333ttk34YNGxo9vvDCC7nwwgs7qmoRlVWXmOerK7uIiIi0RdBL0rvXYKnYzh5TFtf7fsW5uf0aPvwXEZGuTR+xdoDMhPAY89IaP/5gKMq1ERERkS7FMEj46FZse77CZ3UzrfZmam0pXHFUn2jXTEREIkSJeQdIdtmwWUwYQFG1xpmLiEhs2bNnD9dffz3jx49nypQpPP300wBMmzaNoUOHNvmaNWtWs+WsXbu2ybFTp07twEg6J9eyv+Pc8CqGycIdlpvZZPTm0txeJMfZol01ERGJkKh2Ze8uTCYTGW4Hu8trKaj00jPReeiTREREuoibbrqJ7Oxs5s+fz6ZNm7jlllvo1asXDz30EH6/v+G4lStXctNNN/HjH/+42XI2bdrE8OHDeeyxxxq21S+p2l3ZN/0H95d/AmDJ4F/zyqqhJDqtXDaha8yzIyIiLdO9/9t1oCy3PZyYa2Z2ERGJIeXl5axYsYI5c+aQk5NDTk4Oxx9/PIsXL+bkk09uOC4YDPLAAw9wzTXXMHr06GbL2rx5MwMHDiQjI6Ojqt+pWfNXkPi/mwCoHnUlN288Cqhl2oTeuB16CyciEkvUlb2DNMzMrgngREQkhjidTlwuF/Pnz8fv97NlyxaWLVvG8OHDGx03f/58ysvLufbaaw9Y1ubNm8nJyWnnGncN5srdJC64ClOgFm+/KbyQdB27ymtJjbNx8fhe0a6eiIhEmD5u7SD1a5lryTQREYklDoeDu+66izlz5vDss88SDAaZOnVqo5VUDMPg8ccfZ/r06cTHxx+wrM2bNxMKhTj77LOprKzkhBNO4De/+Q1ut7tVdTKZ2hxOkzIiUVar+apJWnAllpoCAqlDKf7hQzz+7DoArpzYlzi7pVXFRTWWCIqVOCB2YomVOECxdEaxFsehKDHvIA2JeaW6souISGzZvHkzkydP5sorr2Tjxo3MmTOHY445hnPOOQeAJUuWsHfvXi666KIDluH3+8nLy6N379788Y9/pKKigrlz5/LrX/+aRx55pFX1SUtLOKx42qusFgkF4eXroGgNxGdgnfYKC1b7KKjy0TPJybVTBuO0tS4xr9fhsbSTWIkDYieWWIkDFEtnFCtxHIoS8w6S6Q4vmaYWcxERiSWLFy/m1Vdf5ZNPPsHpdDJ69Gjy8/N55JFHGhLz9957jxNOOIHk5OQDlmOz2fjyyy9xOBzYbOHZxv/0pz9x/vnnk5+fT1ZWVovrVFxciWEcVliYTOE3g5EoqzXiFs0hbsMCDIuD8tMep8KTxN8XfgXAVRP7UFVeQ1Ury4xWLJEWK3FA7MQSK3GAYumMYi2OQ1Fi3kEyNcZcRERi0OrVq+nXrx9O574VR0aMGMG8efMaHn/22WfceOONhyzr+13WBw4cCNDqxNwwiNibuEiWdSjOtf8ibvk/Aaj84f/h75HLi1/uoNTjp3eyk7NGZB1WXToylvYUK3FA7MQSK3GAYumMYiWOQ9Hkbx2kvit7YbWPUHe4s0REpFvIzMxk+/bt+Hz7hmpt2bKF3r3Dy3mVlJSQl5dHbm7uQcvZtGkT48aNIy8vr2HbunXrsFqt9OvXr30q34nYdi7C/cntAFQf+Su8g8+lotbPc9+En4/rju2H1aK3bSIisUp/4TtIWrwdswmCIYOSGv+hTxAREekCpkyZgs1m47e//S1bt25l4cKFzJs3j2nTpgGwceNGHA5HQ6K+v+rqakpKSgAYMGAA/fr148477+S7777jm2++4c477+TCCy8kKSmpQ2PqaJayLST+9zpMoQC1g8+l5shfAvD8Nzup8gYZkBbHKUMzo1xLERFpT0rMO4jVbCItvm6cubqzi4hIjEhISODpp5+msLCQCy64gLlz5zJjxgwuvvhiAIqLi0lMTMTUzLS0Tz75JBdccAEAZrOZRx55BLfbzU9+8hNuuOEGjjnmGG6//fYOjaejmWpLSfzPdMzecvw9cqmc8hcwmSip8fHSsl0A/PS4HCzmLj4tsYiIHJTGmHegTLeDwiofhVVeoHvMLigiIrFv0KBBPPXUU83uO+OMMzjjjDOa3Tdz5kxmzpzZ8Lhnz548/PDD7VLHTinoI/Hda7GWbyOY0Jvy0x8Ha3is/tNL8vD4QwzPcvODQWlRrqiIiLQ3tZh3oIy6mdnztWSaiIhI92YYuD+ZhX33l4RsbsrPfBojLgOA/Eovr63cDcCMSTnN9jYQEZHYosS8A2XVr2WuJdNERES6NdfyebjWvYxhMlN56j8Ipg1r2PfEl9vxBQ3G9Urk6H4pUayliIh0FCXmHSijbsm0QiXmIiIi3ZZ9y3+JX/xHAKomzcbXb0rDvp1lHt5anQ/AjEn91VouItJNKDHvQJkJmvxNRESkO7MWfkviBzMxYeAZdTm1o69stP/RL7YTDBkcnZPCuN6xPRu9iIjso8S8A2W667uya4y5iIhId2Ou2kPiO1dgCnjw9TmRquPvhv1axLcUV/PfdQUAzDguJ0q1FBGRaFBi3oEaEvNKL4ZhRLk2IiIi0mH8NSQuuApLdT6BlCFUnPoImBsvjvPPRdsxgB8MSmNED63eIiLSnSgx70D1s7LXBkJUegNRro2IiIh0FPfie7AVfkvImUr5mU9hOBIb7V+fX8nCjUWYCK9bLiIi3YsS8w7ktFlIcoY/HS/QkmkiIiLdgslbgXPdvwGoOPlvhJL6NTnmkUXbADh1eCYD0+M7snoiItIJKDHvYJlaMk1ERKRbcXw3H1PAQyBlCP4+JzbZv3JXOV9sLcViguuOaZq0i4hI7FNi3sH2H2cuIiIiMc4wcK15HgDPqMsaTfYW3m3wj8+3AXD2qB70SXF1dA1FRKQTUGLeweqXTCvUzOwiIiIxz7p3Kdbi9RhWJ96h5zfZ/9X2MpbtLMdmMXH10X2jUEMREekMlJh3sIy6FvN8dWUXERGJea41zwFQO+hcDEfjdckNw+AfdWPLzx+bTY9EZ0dXT0REOgkl5h0sS13ZRUREugVTbSmOTf8BoHbUZU32f7q5mLV7K3FazVxxVJ+Orp6IiHQiSsw7mLqyi4iIdA/O9a9iCnrxp48kkHlEo30hw2Deou0AXDK+F2nx9ijUUEREOgsl5h2sviu7ZmUXEZHOwDAMSkpKKCsri3ZVYoth4Kyb9K125LQmk759sL6QTUXVuB0Wph3ZOxo1FBGRTsQa7Qp0N1l1y6VV1Aao9Qdx2ixRrpGIiHQ3e/bs4aWXXuKzzz5jw4YNhEIhACwWCyNGjOCEE05g6tSpZGdnR7mmXZdt92KsZZsJ2eLxDjmv0b5AyODRxeHW8ssm9CbRaYtCDUVEpDNRYt7B4u0W4mwWavxBCqp89NWyKCIi0kFKSkq4//77WbhwIcceeyyXXnopgwYNIjk5mVAoRGlpKRs2bGDZsmWce+65TJ48mVtvvZW0tLRoV73Lca4Ot5Z7h/wIw+5utO+dNXvZUeoh2WXjkvG9olE9ERHpZJSYdzCTyUSG2872Ug8FlV4l5iIi0mGuueYapk2bxu9//3tstuZbaSdMmMBPfvITPB4Pb731FldffTVvvPFGx1a0izPVFOHY8i4AtSMbT/rmC4R4fPEOAK44qg/xdr0VExERJeZRkZngCCfmGmcuIiId6OWXXz5gQv59LpeLiy++mKlTp7ZzrWKPc/3LmEJ+/FnjCGSMarTv9VV72FvpJcNt5/yxPaNUQxER6Ww0+VtrhQLEf3onfP14m4vITNCSaSIi0vEOlpRXVVVRVVXVqnOkGUYI15p/AeD5Xmu5xx/kySXh1vKrj+6reWZERKSBEvNWMvkqca16Chb8GnNFXpvKyHSHl0Qp0JJpIiISZevWrePss89mwoQJHHnkkZx55pmsWrUq2tXqsmx5n2Gp2E7Inoh30DmN9v17+W5KavxkJzk5Z1SPKNVQREQ6IyXmrWQ4U/D1OT78ifiqp9pURqZbLeYiItI53HHHHfz85z9n5cqVfP3115x//vn85je/iXa1uizXmucAqB16Ptj2zSNT5Q3w7NfhD/SvO6YfNovegomIyD76r9AGniOuBcCx5l+YvBWtPr+hK7vGmIuISAe68cYbWb9+faNt1dXV9OnTB4fDgdvtpnfv3s12aZdDM1fvxb71A6DppG8vL99FRW2A/qlxnDY8MxrVExGRTkyTv7WBv+8PIH0o5qINONe9hOeI61p1vrqyi4hINFxwwQXcddddZGZmcuONNzJs2DB+/etfc/nll2Oz2QiFQgQCAe6+++5oV7VLcq59CZMRxNdzIsG0oY32Ld9ZDsDF47OxmE3RqJ6IiHRiSszbwmSGY26At3+Oa+UTeMZcBeaWP5X1LeYl1T4CwRBWdWcTEZEO8IMf/IAf/OAHfPLJJ8yePZu0tDRuvPFGPv30UzZv3ozZbKZfv364XFrKs9VCQZxrw5O+1Y78SZPdhXUfxvdO1nMrIiJNKSNsqzEXEXKlYanahWPzgladmuyyYTWbMICiarWai4hIxzrxxBN56aWXuOSSS/j973/PL3/5S8xmM8OGDVNS3kb2HR9hqdpNyJmCd+AZTfbXJ+YZdb3mRERE9qcW87ayuagdNZ24rx/AteKfeAedDaaWdU0zm0xkuu3srvCSX+mlR6KznSsrIiICPp+Pf//732zZsoXs7GwuvvhiXnzxRRYtWsScOXNISkrixhtvZMSIEdGuapfjXF036duwi8Da+P96rT9IpTcA7JsAVkREZH9qMT8MntGXY1gc2ApWYt37TavO3TcBnFrMRUSkY9xyyy289dZbuN1ulixZwuWXXw7AcccdxwsvvMC0adOYO3cuM2bMiHJNuxZzxU7s2xcCzXdjr/9f77KZibdr7XIREWlKLeaHwYhLp3boVFxrXyRuxT+p6Hlki8/NqPvEvFAzs4uISAdZtGgRr732Gjk5OQQCAcaMGUNJSQmpqakAHHPMMRxzzDEsWbIkyjXtWpzrXsSEga/3JILJA5rsr/9fn+F2YGph7zoREelelJgfJs/Ya3GtfRH7lvcwl28jlJTTovPqu7Llay1zERHpIEceeSS33XYbEydOZMOGDQwcOLAhKd/fxIkTo1C7Lirox7n2RQA831sirV79+PJMjS8XEZEDaFNivmDBAnr06IFhGE0++TUMg507d3LuuedGpIKdXTB1CN6+k3Hs+AjXyieoPmFOi87LTKhbMq1SXdlFRKRjPPDAA7zyyits2bKF8ePHM3fu3GhXqcuzb3sfS00BIVcGvv6nNnvM/i3mIiIizWlTYr5+/XrOOKPpjKP1PvnkkzZXqCvyHHFdODFf9zI1R92M4Uw+5DmZ6souIiIdzG63M3369FadEwgEsFoP/nZhz549zJ49m6+//prk5GSmT5/OFVdcAcCMGTNYuHBho+PnzZvH5MmTm5RjGAZ/+ctfePXVVwmFQlxwwQXccsstmM2dd0oc15oXAPCMuAQstmaPKdCM7CIicghtSswNwzis/bHG33sSgbThWIvX4Vz7Ap7xNxzynH2TvykxFxGRjnHhhRcyffp0zjzzTGy25pPIel6vl7feeot//etfvP766wc99qabbiI7O5v58+ezadMmbrnlFnr16sXJJ5/M5s2buf/++znmmGMajk9KSmq2nKeeeor//Oc/PPzwwwQCAX7961+TlpbG1Vdf3fpgO4C5bCv2vE8xMFE74scHPE4t5iIiciht+gj6UBOXdLuJTUwmao64DgDXqicheOju6fXjzAqrfIS62QcZIiISHY8//jhLlixh0qRJ3Hzzzbz22musWLGC7du3s2XLFpYtW8aLL77ILbfcwvHHH89XX33Fo48+etAyy8vLWbFiBTNmzCAnJ4eTTjqJ448/nsWLF+Pz+di5cyejR48mIyOj4ctub77l+Nlnn+XnP/85EyZM4Oijj+aWW27hhRdeaI+nIiJca8N18/X9AaHEPgc8rn7YmsaYi4jIgWjytwjxDj6H4OK5WKrzcWx6G+/Q8w96fHq8HRMQCBmU1vhJi9c/axERaV+pqanMnTuXnTt38u9//5vnn3+eDRs2EAqFALBYLAwdOpTjjz+e1157jT59Dpxs1nM6nbhcLubPn8/NN99MXl4ey5Yt46abbmLLli2YTKYWlZOfn8+ePXs48sh9K5zk5uaya9cuCgoKyMzMbHvg7SHoxbnu3wDUjpp20EPVYi4iIoeixDxSLA5qR19B/JL7cK14DO+QqXCQngNWi5m0eDtF1T4KqrxKzEVEpMP07t2bX/3qV/zqV78iGAxSXl4OQEpKSqt7vTkcDu666y7mzJnDs88+SzAYZOrUqVx44YUsWLAAt9vNb37zG7766it69OjBzJkzOfHEE5uUU1hYCNAoAU9PTwdg7969rUrMI9Fxr76MA5Vl3/Iu5toSgvE98OdMOeBxIcOgqLquxTzBHpG6tdahYukqYiUOiJ1YYiUOUCydUazFcSgaYx5BnlHTiFv6N2xFq7HtXoy/17EHPT4zwRFOzCt9DM/qoEqKiIjsx2KxNLtkWmts3ryZyZMnc+WVV7Jx40bmzJnDMcccw44dO6itrWXSpElcd911fPDBB8yYMYOXX36Z0aNHNyqjtrYWoFE39/qffb7WrWCSlpZwWPG0qKy3w0ukWY68kvTMlAOeX1TlJRAyMJlgaL80bJboTWQXyeclmmIlDoidWGIlDlAsnVGsxHEobUrMhw4dyrJlyw64XNqAAQMiUrmuxnCmUDvsIlyrn8W14tFDJ+ZuO2vRBHAiItJ1LV68mFdffZVPPvkEp9PJ6NGjyc/P55FHHuGdd95h2rRpDZO9DRs2jDVr1vDvf/+7SWK+fxLucDgafgZwuVytqlNxcSWH20ZgMoXfDDZXlqVkIynbF2GYLJTmTCVUVHnActbnVwGQ6rJRXlp9eJVqo4PF0pXEShwQO7HEShygWDqjWIvjUNqUmJ911lkH3Z+bm9uWYmOCZ+w1OFc/h2Pbh1hKNxNMGXjAY+uXTCuoVGIuIiJd0+rVq+nXrx9Op7Nh24gRI5g3bx5ms7nJDOwDBgxg06ZNTcrJygp3HSssLKR3794NPwNkZGS0qk6GQcTexDVXlmP18wD4ck4iGN8TDnKt+v/xGW5H1N9YRvJ5iaZYiQNiJ5ZYiQMUS2cUK3EcSuddGLSLCiYPwJdzMgCulY8f9Nj6JdO0lrmIiHRVmZmZbN++vVF38y1bttC7d29uu+02Zs2a1ej49evXN9uzLisri+zsbJYuXdqwbenSpWRnZ3euid8CHpwbXgXAM/KyQx6+b+I3zSUjIiIH1qbEvKioiPz8/IN+tYTX6+X2229nwoQJTJo0iSeffPKQ5+zcuZNx48axZMmStlS9Q3iOuBYA54ZXMHlKDnhc/T/p/KrWjZ0TERHpLKZMmYLNZuO3v/0tW7duZeHChcybN49p06YxZcoU3n77bd544w22b9/Oww8/zNKlS7nssnBCW11dTUnJvv+Tl156KX/+859ZsmQJS5Ys4S9/+QvTp0+PVmjNcmz6D2ZvOcGEPvj7Np3E7vsKq+onftOM7CIicmBt6so+b948rrrqqiaTvJlMJgzD4PHHH+d3v/vdIcu57777WL16Nc888wy7d+/m1ltvJTs7m9NOO+2A58yePZuampq2VLvD+LOPxp8xBlvhKlxrnqNmwi+aPS4rQV3ZRUSk4y1YsIAePXoccK6YnTt3cu6557aorISEBJ5++mnuueceLrjgAlJTU5kxYwYXX3wxJpOJ3/3udzzyyCPs3r2bwYMH8/jjjzd0VX/yySd5/fXXWbhwIQBXX301xcXF3HjjjVgsFi644AKuuOKKiMZ+uFyrnwPAM/InYDp0+0Z9Yp6u1VdEROQg2pSYu1wusrOzD7jf7XYfsoyamhpeeeUVHnvsMUaOHMnIkSPZuHEjL7zwwgET87feeovq6uhMnNIqJhOeI67F9sFMXKuepmbcT8HS9JPy+jHmhVXeZt8ciYiItIf169dzxhlnHHD/J5980qryBg0axFNPPdXsvgsvvJALL7yw2X0zZ85k5syZDY8tFguzZs1q0v29s7AUrcWWvwzDbKV2+MUtOqd+gtdMrWEuIiIH0aau7IdKIFuSYK5fv55AIMC4ceMatuXm5rJy5UpCoVCT40tLS7n//vv5/e9/3/oKR4F34FkE3T0xewpxfPdms8fUd2X3+ENUeYMdWT0REenGtOxp27jWhCd98w44HSOuZRPS1beYZySoxVxERA6sTS3mkVBYWEhKSkqj9UrT09Pxer2UlZU1WVP1T3/6Ez/60Y8YPHjwYV03Eo3SLVrs3mqjdsxVxH9xD3ErH8U3/MImJ7jsFpKcVsprAxRUeUl0dezL0aI4ugjF0vnEShwQO7HEShwQG7FEs+6R+IC92/FV49gwH4DaFkz6Vm/f5G9qMRcRkQOLWmLu8XgaJeXQeA3T/X3xxRcsXbqU//znP4d93UguUH/Iso6/Dr7+K9bi9aRXfAMDpzQ5pGeyi/K9lXgtFtLTI1e31ojkcxJtiqXziZU4IHZiiZU4ILZikc7NufENzP4qAskD8Pc6tkXneAMhymsDAGRqVnYRETmIqCXmDoejSQJe/3j/tVBra2u56667+N3vftdoe1tFYoH6li92byF++MW4Vj2J75MHqUg6sskRqXWt5Bt3lTIy9fDja42Wx9H5KZbOJ1bigNiJJVbigNiIpT4G6QIMA2fdpG+1Iy9rcXeH+tZyh9VMgiNqb7lERKQLaNN/Cb/fz7JlyxpNWFb/s2EYLZo1PSsri9LSUgKBAFZruBqFhYU4nU4SExMbjlu1ahV5eXn8/Oc/b3T+tddey3nnndfqMeeRXKC+JWXVjLka57dPY9/xMeaiDQTThjbaXz8ZTEGFL2pvLiP5nESbYul8YiUOiJ1YYiUOiK1YOpLGmLeOtWAltqLVGBYHtcOan8iuOQ3jy912DQ8QEZGDalNifuuttx50f25u7iHLGD58OFarlRUrVjBhwgQAli5dyujRozGb981JN2bMGN5///1G555yyin84Q9/4LjjjmtD7TtWKKkfvgGn4di8ANfKx6ia8udG+xsS8yotmSYiIh1j6NChTT5gr2cYBgMGDIhSzTonZ/2kbwPPxHCmtPg8jS8XEZGWilq/KpfLxXnnncfs2bP54x//SEFBAU8++SRz584Fwq3nCQkJOJ1O+vXr1+T8rKws0tLSOrrabVIz9jocmxfg/O51qo++tdFMrpl1s7QqMRcRkY5y1llnHXR/Sz5g7y5M3nKcG8Orq3hGTWvVuQV1LeYaXy4iIofSpsT80UcfZcKECU26utV3ZV+8eDE33njjIcuZNWsWs2fP5vLLL8ftdjNz5kxOOeUUACZNmsTcuXOZOnVqW6rYqQR6TsCfNR5b/jJc3z5DzcRbGvZlJtS1mFf6DnS6iIiIRIljw3xMAQ+B1KEEekxo1blqMRcRkZZqU2JeWVnJ+PHjD7j/448/blE5LpeLe++9l3vvvbfJvg0bNhzwvIPt66xqjriOpPd+imv1s9Tk3gBWF7Dvn3WhWsxFRKSDFBUVEQwGD3pMVlZWB9WmEzMMnKvD3dg9rZj0rd7+Y8xFREQOxnzoQ5rS+qet5xtwGsGE3phrS3DWrYMKkFWXmJfXBqj1H/xNkoiISCTMmzePYDBIIBBo9FW/bd68edGuYueQtwRryQYMqxPv0Nb34FOLuYiItJTW7ugoZiuesdfg/nw2rpWPUTviUjCZcTssuB0WqrxBlu0s59j+qdGuqYiIxDiXy0V2dvYB97vd7g6sTSf2zVMA1A4+F8OR1OrTNcZcRERaqk0t5tI2tcMvJmRPwFq6Cfv2j4Bw74KzR/YA4PHF27VEjYiItDv1fDs0k6cU1rwOQO3I1k36BuHZ7YvUYi4iIi2kxLwDGfYEakf8GADXyscatk8/qg8Oq5lv91TyxbbSaFVPRERE6jjWvwJBL4GMUQQyx7b6/HJPAF8w/GG7xpiLiMihtCkxP1Srrlp9D8wz5ioMkwX7zs+xFK4BID3ezoVHhLsU/nPRNj1/IiIiUebY9BbQtknfAAqrw63lKS4bNovaQURE5ODaNMb8pJNOYtmyZc3uMwyDE0888bAqFctCCb3wDjoL58Y3iVv5GJUn/RWA6Uf25rWVu1mXX8Wnm0s4cVDXWKNdREQkFvn7TsaWnN2mSd9g3/jydLWWi4hIC7QpMR87tvVdumQfzxHX4dz4Jo6Nb1J9zG2E4nuQEmfnonG9eOarPP75xTaOH5iKWWP8RESkHfj9fpYtW4ZhGA3jyet/NgyDmpqaKNcw+mom3kxcegIUVUIbOrIVVoZbzDM1vlxERFpAs7JHQSBzLL6eE7HvWYJr1dNUH3MbAJdN6M0ry3ezsbCajzcVM2VwepRrKiIisejWW2896P7c3NwOqkns0hrmIiLSGhr0FCWeI64FwLnmOfCHWyaSXTYuye0FwKNfbCOkseYiIiJdUkGVWsxFRKTllJhHiS/nZAJJOZi95TjXv9Kw/Se5vXA7LGwuquF/3xVFsYYiIiLSVkXVajEXEZGWU1f2aDFb8Iy9hoRPf4tr5WPUjrwMzBYSnTZ+nNubR7/YzmNfbGfK4HQsZo01FxGRyHn00UeZMGHCAceYL168mBtvvDHKtezaCiq1hrmIiLScEvMoqh12EfFL7sdavg37tg/xDTgVgEvH9+KlZbvYWlLDBxsKOW14ZpRrKiIisaSyspLx48cfcP/HH3/ccZWJURpjLiIiraGu7NFki6N25DQAXCsebdjsdli5bEJvAB5bvJ1ASGPNRUQkckyHWPXjUPvl4HyBEKUeP6Ax5iIi0jJKzKPMM+YKDLMtPEP7yscbtl80Lpskp5UdpR7+uy4/ijUUERGR1qgfX263mEhyqXOiiIgcmhLzKAvF96B64q8BiP/8bhwb3wr/bLcy/cg+ADy+eAeBYChqdRQREZGWK6ybkT3d7VDvAxERaREl5p2AZ9wMakZfiQmDhA9vwrZzEQAXjssmxWVjV3kt76xVq7mIiEhXUD++PFPjy0VEpIWUmHcGJhPVk2ZTO/AsTCEfiQuuxlK0FpfNwuVHhVvNn/hyB361mouISAQYxsHnLjnUfjm4+jXM0+M1vlxERFpGA586C7OFypP+itlThH33lyS9PY2y89/g/LHZPPfNTvZUeHl79V6mjs2Odk1FRKSLO+mkk1i2bFmz+wzD4MQTT+zgGsWWhhbzBLWYi4hIyygx70ysTirOeILk18/HWryepLcvw5j6Olce1Yc/f7SZJ77cwVkje2C3qqODiIi03dixY6NdhZhWP8Zca5iLiEhLKcPrZAxHEuVnPUfQ3Qtr2WaS3rmcHw1PItNtp6DKxxvf7o12FUVEROQgCjTGXEREWkmJeScUcvek/OznCTmSsOUvJ/1/N3DVUeEu7E9/tYNafzDKNRQREZEDKVKLuYiItJIS804qmDqY8jOfwbA4cGz/H9OKH6SH205hlY/5q/ZEu3oiIiLSDMMwGlrMM9RiLiIiLaTEvBML9JxAxamPYJjMxG94mb/3fBeAZ77Kw6NWcxERkU6n0hvAGwivopIer8RcRERaRol5J+frfwpVJ84FIDfvCW5wf0xJjZ9XV+yOcs1ERETC9uzZw/XXX8/48eOZMmUKTz/9dMO+jz/+mHPPPZdx48Zx9tln87///e+A5ZSXlzN06NBGXxMnTuyACCKnvrU8yWnFabNEuTYiItJVaFb2LqB25E8wV+cT//X/cUvgMTaZ43j2axvnj80mzq5/+iIiEl033XQT2dnZzJ8/n02bNnHLLbfQq1cv+vTpw4033shvfvMbTjzxRD7//HN+8Ytf8OqrrzJs2LAm5WzatInk5GT+85//NGwzm7tWG4JmZBcRkbZQYt5F1Bz5S8zV+bjWvsDf7H/nstpE/r28F1dM7BvtqomISDdWXl7OihUrmDNnDjk5OeTk5HD88cezePFiVq5cydFHH8306dMB6NevHwsXLuTdd99tNjHfsmUL/fv3JyMjo6PDiJhCjS8XEZE26FofQ3dnJhNVJ96Dt/+pOPDzuP3PLP5mMVXeQLRrJiIi3ZjT6cTlcjF//nz8fj9btmxh2bJlDB8+nB/96EfccsstTc6prKxstqxNmzaRk5PTzjVuX/tazJWYi4hIy6nFvCsxW6k45WGS3ryUpL3f8LBxD68v6c9FJxwV7ZqJiEg35XA4uOuuu5gzZw7PPvsswWCQqVOncuGFFzY5duPGjSxevJhLLrmk2bI2b95MIBDgggsuID8/nwkTJjBr1iwyMzNbVSeTqU2hNFtGa8sqbFjD3BGRekRCW2PpbGIlDoidWGIlDlAsnVGsxXEoSsy7GquLijOfwvbiOWTXbOXUVT+neuw7xCelRbtmIiLSTW3evJnJkydz5ZVXsnHjRubMmcMxxxzDOeec03BMSUkJM2fOZPz48fzwhz9stpwtW7aQmprKrFmzMAyDBx54gJ/+9Ke88sorWCwtn1MlLS3hsGNqa1nlvvCqKf17JpKeHrl6REIkn5doipU4IHZiiZU4QLF0RrESx6EoMe+CDGcK3qkvUvTCGQxiJztenwaXvQZWV7SrJiIi3czixYt59dVX+eSTT3A6nYwePZr8/HweeeSRhsS8qKiIK6+8EsMw+Nvf/nbACd3eeecdTCYTTqcTgL/97W9MmjSJlStXMn78+BbXqbi4EsM4vLhMpvCbwdaWtbOkBoA4DIqKmu+y39HaGktnEytxQOzEEitxgGLpjGItjkNRYt5FmZJ68/XEeRy3+Ar6Vq+i6t0b8Jz5GJg1S7uIiHSc1atX069fv4ZkGmDEiBHMmzcPgPz8/IbJ35599llSU1MPWJbL1fgD5rS0NJKTk8nPz29VnQyDiL2Ja21ZBZV1Y8zjHZ3ujWQkn5doipU4IHZiiZU4QLF0RrESx6Fo8rcubPz4Y7g77g68hg33jvdxf3pH97hrRUSk08jMzGT79u34fL6GbVu2bKF3797U1NRwzTXXYDabef7558nKyjpgOVVVVRx55JF8+eWXDdvy8/MpLS1lwIAB7RpDpASCIUpr/ABkJGjyNxERaTkl5l2Y2WTi6OPP5Bf+GwgZJlxrnifumwejXS0REelGpkyZgs1m47e//S1bt25l4cKFzJs3j2nTpvHPf/6THTt2cO+99wJQWFhIYWFhw6zstbW1FBYWAuB2u8nNzWXu3LmsWrWKNWvW8Mtf/pLjjz+eoUOHRi2+1iiq9mEAVrOJZJct2tUREZEuRIl5F3fioDS2pU9hdiDcTTD+qz/jXPuvKNdKRES6i4SEBJ5++mkKCwu54IILmDt3LjNmzODiiy/mvffeo7a2lgsvvJBJkyY1fN1zzz0ALFiwgEmTJjWUde+99zJixAiuu+46pk2bRq9evfjzn/8crdBarX5G9vR4O+auPo2wiIh0KI0x7+JMJhPXH9ePX75+KtmWcn5qfgP3x7cRcmXg639ytKsnIiLdwKBBg3jqqaeabP/vf/970POmTp3K1KlTGx4nJSUxd+7ciNevo+xbw9wR5ZqIiEhXoxbzGHBc/1RG9kjgT74LWZp8GiYjROJ7PyXx3WtwrXwCS9FaMELRrqaIiEhMK6hfw1zjy0VEpJXUYh4D6lvNf/7aaqYXXcaX/QMk5H2IY8t/cWwJt1aEnCn4s4/G1+sY/L2OIZg6FEz6XEZERCRS6ruyq8VcRERaS4l5jDi6XwpjshNZtbuCe+Jv59bzZ2LbtRj77sXYdn+NubYUx5Z3cWx5F9iXqDN0MpakcQSUqIuIiByWhq7s8WoxFxGR1lFiHiNMJhPXH9uPG179lvnf5nPZUUeRlZuLJ/dGCPqxFq4KJ+q7FmPb81VDos6Wd0kBQs5U/L2Oxpdd36I+RIm6iAiAEcJcvh1r8TqsxeswHEl4xlwNmtxLvqchMVdXdhERaSUl5jHkyL7JjOudxPKd5Ty1ZAe3nTQ4vMNiI9Ajl0CPxom6fddi4gu/wti+GHNtCY7NC3BsXgAoUReR7slUW4q1aC3W4vVYitdhLV6PtWQDpoCn0XHegWcQcmdHqZbSWTWMMVdXdhERaSUl5jGkvtX8p/9exZvf7uXHub3pm+JqemBdoh7smUt8egLF+SVYCr7fov69RN2VRs34G/GMvVoJuoh0fUEvltLNWIvDSbi1eB2W4vVYqvObPdywOAikDiWQNhx/3xMIxffs4ApLZ2cYhmZlFxGRNlNiHmNy+yRzVN9kvtpRxk3zv+WxS44g7VBj3Zq0qPuwFn7bOFH3FONedDf2be9TOeUBQom9OyYgEZHDYRiYq3bv1wIebgW3lG3GFAo0e0owsS+BtOEE0oYRSBtOMG04waQcMFs6tu7SpVT7gnj84RVQMtzqyi4iIq2jxDwGzT59KNe8uIK8slp+MX818y4ag9vRipfaYm+SqDvX/Rv3ot9j37WYlJdOour43+MddqHGWIpIp2Up3kDie9djLd3U7P6QI4lA6jCC6cPqEvHhBFOHYtjdHVxTiQX1M7K7HRZcNn2IIyIiraPEPAZluB08dMEYrn1pBRsKqrj5jTX87fzROKxt7IJusVM76jJ8fSaR+OFN2PZ+Q+LCX+Hd+h6VP7gXIy49sgGIiBwm246PSXxvBmZfJYbZSjB5YKMW8EDacELunvpwUSKmQN3YRUTkMGiwcIzqm+Lib1NHE2+3sGxnOXf8Zx2BkHFYZYaScij70WtUHX0bhtmGY+t7pL50Evat70eo1iIih8+56imS/jMds68SX8+JFF+xjNJL/0flKX/Hk3sjvpwfEkrIVlIuEVU/vjxT3dhFRKQNlJjHsKFZbv5y3kjsFhOfbC5m7gffYRiHl5xjtuDJvZHSC98hkDYMs6eIpAVX4V54MyZfZWQqLiLSFqEA7k/vIOGzOzEZIWqHXUj5uf/CcKVGu2bSDdR3ZVeLuYiItIUS8xiX2yeZe84cjtkEb63O5+HPtkak3GD6CEovfIeacTMwMOFa9zIpL52MbdfiiJQvItIaJm8FSe9cjuvbZwCoOmYWlVP+DyxKkqRjFDYslaYWcxERaT0l5t3ADwanc8fJQwB49uudPPd1XmQKtjioPvYOyn/0KsHEvlgqd5L0xkXEL5oDgdrIXENE5BDM5dtJfu087Ds+wbA6KT/tUTzjb1BXdelQWipNREQOhxLzbuKc0T2YeXx/AP726VbeWr03YmX7sydSevH7eEZcigmDuBX/JOWVM7EWro7YNUREmmPd/RUpr56NtfQ7gvFZlP1oPr6BZ0S7WtINFTR0ZVeLuYiItJ4S825k+lF9mDYhvP74Pe9/x8ebiiJWtmF3UzX5fsrPfJqQKwNryQaSXz2LuG/+BgdYK1hE5LCsfImkNy7BXFuCP2M0ZRf8h0DmmGjXSroptZiLiMjhUGLezcw8oT9nj8wiZMDtb6/jyy3FES3fl3MSJZd+iHfA6ZhCAeKX3Efy/KlYyrZE9Doi0o0ZIeK+vA9evx5TyId3wGmU/ei18PJnIlEQCBkUV2uMuYiItJ0S827GZDJx+ylDOHFgGr6gwbXPfMP6/KqIXsNwpVFx2qNUnPRXQvYEbPnLSHn5VJyrn4XDnRVeRLo3v4fE92aEe+MANeNvoOK0R8EWF+WKSXdWUu0jZIDFBClxSsxFRKT1lJh3Q1aziT+cOYzxvZOo9Ab4+WvfsqPUE9mLmEx4h15A6SUf4ut1HKaAh4RPbifpP5dhrtoT2WuJSLdgrs4n+Y0LcGx+B8Nsg3P/Qc2xs8Ckf2USXYV1reVp8XYsZk06KCIirRfVdzNer5fbb7+dCRMmMGnSJJ588skDHvvWW29x6qmnMmbMGC655BJWrVrVgTWNPU6bhf/70UhG9EykpMbPzFdXNYyPi6RQQi/Kz32Rqkl3Y1gc2Hd8QspLJ+HY+GbEryUisctSuIbkV8/CVrCSkCOZ8nNfhHE/iXa1RAAorNT4chEROTzWaF78vvvuY/Xq1TzzzDPs3r2bW2+9lezsbE477bRGx33zzTfccccd/OEPf2D8+PH861//4tprr2XhwoXEx8dHqfZdn9th5ZmrjmLq3z8nr6yWma99y6MXjyXRaYvshUxmPGOvxtfnBBI+/AW2wlUkvn8DwS/+SCgug1BcOiFXOoYrveHn0H4/G84UMFsiW6d6hoHJX43JW4HJV4HJW4G57jtAIG0YwZSBWgtZOpzJV4VzzfOYgn48oy/HcCRGu0pRY9/6Ponv34gpUEMgZRDlZz6NkZwT7WqJNNCM7CIicriilpjX1NTwyiuv8NhjjzFy5EhGjhzJxo0beeGFF5ok5oWFhfzsZz/j3HPPBeCGG27gySefZPPmzYwZoxl4D0dGgoOHLxjN1S+uZHNRDb96fQ0PXzAapy3yiXAwdTBl579J3NK/EffN37BU7cJSteuQ5xkmM4YzlZArLZzIu9LqEvcMjLqfjfh08CViK9gLteWYfJWYm0m29z2uxOQNH2cyQge/vtlKMHkggfQRBNKGE0gbTjB9BKG4TK2TLJHnq8b17VPELZ+H2VsGgGvFPGrG34Bn9JVgc0W3fh3JMHCt+CfxX9yDCQNf7+OpOG0ehiMJ/eZJZ1Lf4yxTLeYiItJGUUvM169fTyAQYNy4cQ3bcnNzmTdvHqFQCLN5Xy/7008/veHn2tpann76adLS0hg4cGCrrxuJPKq+jK6ek9XXv3eKi4cvGM21L61k5e4Kbnt7HX85bwRWSzuMdLDa8Ey8mdrRl2Op2I7ZU4ypphCzpxhz3fd9j4sw1ZZiMkKYPEWYPUVQsuGgxSe1sVqG2YbhSMSwJxJyJGI4EjEFfViK12P2lmMt2YC1ZAPwesM5IWcqgfThBNOGNyTtwdTBYHW2sRZhsXZ/dfU4oINi8dfg+vYZXMsewVxbAkAgeQCYLFhLN+Je/EdcK5/Ac+QvqB1xKVha37OlS70mQR/uT27HufYlADyjplF9/O/BYsNEF4vlALpy3aWxfUulqcVcRETaJmqJeWFhISkpKdjt+/6Jpaen4/V6KSsrIzU1tck5ixcv5qqrrsIwDP785z+3qRt7WlrCYdW7vcqKprS0BNLSEnjqSjuXPbGERVtL+NNHW/i/i47A3G6T2CQA/Q99WDAANcVQXQjVBVBdBFUFdY+L6rYVQlUhGEFwJoW/HIn7fnYmfm97cpPtJqsTU9275EZ9BQwDKnZB/hrIXw17V4d/Lt6IubYE+85FsHPRvuNNFkgbBD1GQdZIyBoV/krMbvW78Fi6v2JFu8Tiq4FvnoRFfw3fywCpA+DEW7GOuiB836x6GT6ai6V8B+5Pbse96lGYfAeMOr9Nwzw6/WtSUwL/vhy2fRae2O3UubgmXo+rmd+hTh+LdAuFdV3ZMxPUYi4iIm0TtcTc4/E0SsqBhsc+n6/ZcwYPHsz8+fP56KOPuO222+jduzdHHHFEq65bXFx52Ct2mUzhN4ORKCuavh9HjtvGn84azs1vrOGNFbtxmU38avKAhoQ1euLA2g+S+h2wSbzNr4kX8AaAgy0ZlwSpx4a/htdtCniwlGzEWrQOa/E6LEVrsRatDXc9LtoQ/lr9WkMJIUcSgYxReMZdj7/flINWKVbvr66sXWIJeHCueYG4pf/AXFMAQDCxHzVH/gLv0KlgtkL9agm9z4Yfn4Jzzb+I++ZvmEu3wfxrCXz8Z2qOuRVfzskt+uCnK7wm5tItJP3ncizlWwnZ3FSe+nf8OT+E4sa/o10hlkOpj0G6vvrEPD1eLeYiItI2UUvMHQ5HkwS8/rHT2XxX4PT0dNLT0xk+fDgrV67kpZdeanVibhiRW0o7kmVF0/5xHDcgjbtOG8rv3t3Ai8t2keyycdXRfaNbwVbosNfE4iKQMYZAxn5zHBgG5pp8rEVrsRSv25e0l23G7C3HvnMR9p2L8PY/lapJswkl9jnoJWLx/urqIhJLoBbn2heJW/owlpp8AIIJfaiZ8Atqh56/r4v6969jduAZfSWeYRfjWvUkccsfwVqygcR3rsKfNZ7qo2/F3/u4joujtQK1mGuKMHsK674XhYerePYbylJThKVyB6ZALcGE3pSf+RTBtOFNn4v9xNL9JV1XgcaYi4jIYYpaYp6VlUVpaSmBQACrNVyNwsJCnE4niYmNZx9etWoVFouFkSNHNmwbOHAgmzdv7tA6dxdnjMiivDbA/320mUcWbSPZZWXq2OxoV6vzM5kIxffAF98D9m8VD3qxlGzC+d18XKuewLH1Pew7PqYmdyY143562GPSpYsIenGue5m4pQ9hqdoT3uTuRc2En1M77EKwtLClzRaHJ/dGakdeRtzyebhWPYEtfxnJb16Mr88JVB99K4HMse0YyH5CQcyVeZirC8IJ934Jdv1jU/1j/8F6pTTm75FL+emPY8RltGPlRSKjxhek2hcEICNBLeYiItI2UUvMhw8fjtVqZcWKFUyYMAGApUuXMnr06EYTvwG8+uqr7Nq1iyeeeKJh25o1axgxYkSH1rk7uXR8L8pqfDy5JI8/fbiJRKeNk4bqTXKbWBwEM0ZSnTGS2uEX4/70t9h3fUH8V3/Guf4Vqo7/Pb6cH0a7ltJegj6c6/9dtxLB7vAmd09qcn9O7fCL2rwUn+FMpvqY26gZcxXxS/+Gc80L2PM+xZ73Kd4Bp1M98TfhyQgjxTAwl2/DVrgKa/5KrIUrsRauxuyvbnkRZvu+JRHj0gm5MjDi0gi5Mhoeh+LSCaYOCY8tF+kC6lvL4+0W4u1RXYVWRES6sKj9B3G5XJx33nnMnj2bP/7xjxQUFPDkk08yd+5cINx6npCQgNPp5OKLL+aiiy7imWee4cQTT+Stt95i1apV3HfffdGqfrfw0+NyKPMEmL9qD3cuWI/ZBFOGKDk/HMHUIZSf+zKOTW8Rv+j3WCq2k/TO5XhzTqHq+NmEErvOsAE5hKAf54ZXifvmQSyVO8Ob4rOoyZ1ZN6t6ZLq8GvGZVJ3wB2qOuI74r/4Px4bXcGx5F/vW9/AOvYDqI395yGETTQs1MFftwVq4Elv+SqyFq7AWrMTsLW96qMVBKL7Hfgl3xn6JdzrGfo8Ne6KmIpeYU6Q1zEVEJAKi+tHurFmzmD17Npdffjlut5uZM2dyyimnADBp0iTmzp3L1KlTGTlyJA8//DD/93//x1/+8hcGDx7ME088QVZWVjSrH/NMJhO/+eEgymv9/O+7Im59ex3njy3jphMHtMs6592GyYR38Ln4+v2QuK8fCHdv3/Y+9rxPwmtV584gPGu9RETQi6VyF+by7VgqtmMp3xH+XrEdc9UeDKsLw5lKyJVKyJkS/tmZQsiV2rDdcKaAtQ/4HWA9xDrioQCODfOJ/+ZBLBXbw1WIy8Qz/gY8I3/SbkMXQol9qTzpr9SMm0H8V/fj2PJfnOv/jeO71/GMvIyaCT+H+OY/WDPVFGErWIm1IJyE2/JXYvYUNjnOMNvDSwNmjsWfOZZA5hiCKYPbNDO8SKwoaFgqTePLRUSk7UyG0b2mzSkqisys7OnpCREpK5paGoc/GOIfn2/j+W/CrX4D0uK456zhDEpv/XJ17aUrvyaWku9wf3on9l3hZdeCif2wnHkfRWnHdblY9tdhr4lhYPKWYSnfjqViB5by7Zgr9iXh5qrdmA42e1hrL2d1EnLul8TXJe4hZyqGxY5z3UtYy7cBEHKlhz9sGXXZoRP6CLPmLyf+y/uw7/ysrt4uPGOvIe746ynfuhpL/oqGbumWql1NzjdMFoKpQ/FnjSWQMZZA1lgCqUNbPha+nXXl3/l69TFI5HXk//pnvsrj4c+2csaITO4+fdjhXbSdxMLvC8ROHBA7scRKHKBYOqNYi+NQNBhKDslmMfOLEwdwVL9kZr+7gS3FNVzxwnJ+ceIALhjbsxMsp9a1hbu3v4Rj09vEL7o73Mr64sUk5pxE5aS7CSX1i3YVo8cwwF+D2VuOyVuG2VNc19pdn4DXffdVHLwYq4tgUj+CiXVfSX0JJvYjlNALU6AWU20JZk8J5toSTLWlmGtLMdU9NteWYqotwVJbCkEfpkAtlqrdDePFmxNypVEzbgaeUdPBFhfpZ6VFAlnjKD/3RWw7FxG/eC62ghXELX0Ilj7UZNVBAxPBlIEEMscSyBiDP+sIAukjOvzDBJGuqFAt5iIiEgFKzKXFjslJ5cXLc5n97gYWbyvlvv9tYsm2Un576hCSXbZoV69rM5nwDj4HX78pxH3zV+JWPo5924ek5n1GzfifUTP+Z103STIMTL4qTLXlmLzlmL1ldd/Dj/f/2ewt2++4cky+CkyhQIsuE4zLIpTUj2Bi37okvG9dEt4Pw5V+WGObTSZIT3NTvGcveEqaJu7127xlBDLH4hk5Deydo0eJv/dxlF3wNvat7xO/5D6sJRsIJvbDnzkmnIhnjiGQMRrDrpZbabs9e/Ywe/Zsvv76a5KTk5k+fTpXXHEFAGvXruV3v/sd3333HYMGDeLuu+9m1KhRByzr6aef5oknnqCqqorTTz+dO++8E5er8/79K6gbY56pMeYiInIYlJhLq6TG2fnr1FG8tGwXD326lU82F7P22aX8/vRhTOibHO3qdXmG3U3Ncb8l7tir8L35K+w7Pyf+6wdwbniNqkl34+t/crSreEgmbzmOzQtwbHwTiteSVluOyQgeVpmG2YbhSCLkTCGY2Cfc2t3QAt6XYGJfsLXzG3eTCcPuxrC5u94kfSYTvgGn4h9wCulJVkorgl26S5h0PjfddBPZ2dnMnz+fTZs2ccstt9CrVy+OO+44rrvuOs4++2z+9Kc/8eKLL3L99dfzwQcfEBfXtDfJe++9x8MPP8z9999PWloas2bN4v777+euu+6KQlQtoxZzERGJBCXm0mpmk4kf5/Ymt3cyt7+zjh2lHn72yiqumNiH647ph9WiZY4OW8ZQKs59Edumd3B/PhtLxQ6SFlyJt98PqTr+bkJJOdGuYWOBWuzb/4fzu9exb1uIKeRr2FXfTm1YHIQcSRh1X6HvfTecyeGf7YkYzv33J4d7C2jIxOEzmcAeB1RGuyYSQ8rLy1mxYgVz5swhJyeHnJwcjj/+eBYvXkx5eTkOh4Pf/OY3mEwm7rjjDj799FP++9//MnXq1CZlPfvss1x++eVMnjwZgLvvvpurr76aX//615221bxQLeYiIhIBSsylzYZmuXnusvH85aNNvLU6n6eW5PHNjjLmnDmMXkmd8w1Ul2Iy4Rt0FiV9JxO/9EFcKx7Fsf1/2Hd+Ts24GdTk3hDd7u2hILZdX+D47g0cWxZg9u1L9gKpQ/EO+RHxR5xFsddFyJ7UbrORi0h0OZ1OXC4X8+fP5+abbyYvL49ly5Zx0003sXLlSnJzcxvmIjGZTIwfP54VK1Y0ScyDwSDffvstN954Y8O2I444Ar/fz/r16xk3blyHxtUSIcOgqDqcmKerxVxERA6DEnM5LHF2C3eeOpSjc1L54wff8e2eSn7y7DJmnTSYU4dnRrt6scEeT/Uxt1M77KLw7O07PyP+m7/i3PAatcMvJpAxikD6SELxPdq/VdkwsBauwvHd6zg2voWlpqBhV9CdjXfIedQOPo9g+ghMJohPT8AoqiSCk6KLSCfjcDi46667mDNnDs8++yzBYJCpU6dy4YUX8r///Y9BgwY1Oj4tLY2NGzc2KaeiogKv10tm5r7/HVarleTkZPbu3duqOkXiT2F9GQcrq7TGTzBkYDZButveaTv2tCSWriBW4oDYiSVW4gDF0hnFWhyHosRcIuLkoRmM7JHAb99Zz7d7KvjtgvV8ub2UX08ZRJxdaxxHQjBlEOXn/Av75ndwL7obS2Ue8V/9uWF/yJVGIH0UgYyRdd9HEUzKAdPhDy2wlG0Jt4xvfANr2ZZ913Qk4x10Nt4h5+HveWREriUiXc/mzZuZPHkyV155JRs3bmTOnDkcc8wxeDwe7PbGXbztdjs+n69JGbW1tQ37W3L8waSlRW4yw4OVtae2HAi3lvfITIzYNdtLJJ+XaIqVOCB2YomVOECxdEaxEsehKDGXiMlOcvLoJWN5fPF2nlqyg/+syWfV7gr+cOYwhmd1j1+odrdf93bn+n9jy1+OtWgNltKNmD3F2PM+wZ73ScPhIVs8wfSR+NNH1rWsjyKYOrhFa1Gbq/NxbHobx3evYytY2bDdsDrx9j8V75Af4etzQqdZ11pEomPx4sW8+uqrfPLJJzidTkaPHk1+fj6PPPIIffr0aZJU+3w+nM6mQ1scDkfD/u8f39rx5cXFkVnHPC0t4aBlfbezFID0OBtFRZ137oaWxNIVxEocEDuxxEocoFg6o1iL41CUmEtEWc0mfnpcDkf2TeauBevZUerhqn+t4Ibj+/Pj3F6Yu3pflM7CHk/tmCup5crw44AHa/F6rIWrw19Fq7EWr8fsr8a85ytse75qONUw2wikDm3Ush5IGwH2eEzeCuxb3sX53RvYdi3CZITC55gs+PscT+2QH+HrfyqG3R2NqEWkE1q9ejX9+vVrlGyPGDGCefPmMWHCBIqKihodX1RU1Ki7er3k5GQcDgdFRUUMHDgQgEAgQFlZGRkZGa2qk2EQsTdxBytr/xnZu8Kbxkg+L9EUK3FA7MQSK3GAYumMYiWOQ/n/9u48vqkq/R/456Zpk+773rIVSguUtrSADiCIggiCgOCCC4zigoqOioz1N46MijguX2eUr7IoLuO4gIJ+xVEGRRQXttYuLIXue9N0SbqmW87vj9JISCogTW4aPu/Xq6+Se28uz5Pb9OTpueccFuZkEynRfnj/thQ889+T2Jtfh39+V4gDxQ148uqRCPJkD2u/U7qjKzQZXaGnTY5k7IJLQ35Pka49avqu6GiEa+0RuNYeAfARAEBAQrfvYLg0V0HqbjedojMsBYYR89E+fC6ER5CdkyKigSAkJAQlJSXo6Ogw3YZeWFiIqKgoJCYmYvPmzRBCQJIkCCGQkZGBe+65x+I8CoUCCQkJSE9Px8SJEwEAmZmZUCqViIuLs2tO56p3DfMgzshOREQXiIU52YyvuyuenzcKO7Kr8D97C7G/pAE3v5uOJ2eNxB+GBsgdnvNTKNEdGIfuwDi0j1zUs00IKJrKzHvWtUfh0qqBUl8MAOjyH4H22AUwjLgWRt/B8sVPRAPC9OnT8cILL+Avf/kLVqxYgaKiImzYsAEPPfQQZs2ahZdeeglr167FjTfeiA8//BBtbW24+uqrAfSMK29qajL1iC9ZsgR//etfERsbi5CQEKxZswbXX3+94y6V1tTzh8wQzshOREQXiIU52ZQkSViYGIHESF/85Ytc5Ne24MHtR7AkJRL3TR4KNyUnC7MrSYLRZxA6fAahI2b2r5tbtVDWHYfRPQjdgfEDf/pLIrIbb29vvP3221i7di0WLVqEgIAArFixAjfccAMkScLGjRvx5JNPYuvWrRg5ciQ2bdoEDw8PAMB//vMfpKWl4cSJEwCAOXPmoKKiAn/961/R0dGBmTNn4tFHH5Uzvd/Uu4Z5MHvMiYjoArEwJ7uICfLEW0uS8Or3RdiaWYn30yvwQ2E9ll86CDNHhsBFwUJQTsIjGJ0e5zeGk4io1/Dhw/HWW29Z3Td27Fjs2LHD6r6FCxdarGd+11134a677ur3GG2hppk95kRE1D/YXUl2o3Z1waNXDMeL146Gv7srShva8Nf/nMBN76bjm5NaGC+GWR2IiMhp1Lac6jH3Zo85ERFdGBbmZHdThwdix/LxuHfyEHirlCiqa8Vjnx/HLf/KwHf5dRAs0ImIyMEZOrvRaOgCwB5zIiK6cCzMSRaebkr8ceIgfLZ8ApZfMgiebi7I07Zg1WdHsez9TPxcXM8CnYiIHFbv+HK1UgFPNxeZoyEiooGOhTnJylutxN2ThuDT5ROwdEI01EoFjlU34YFPjuDOD7OQXqaTO0QiIiILpvHl3ipInDCTiIguEAtzcgh+7q64f8pQfHbnBCxJiYRKqUBWZSPu2ZqNFduykVWhlztEIiIiE87ITkRE/YmFOTmUAA83PDQtBjvuGI/FSRFQKiQcLtVh+YdZeHB7Do5VN8kdIhEREbSnesyDOb6ciIj6AQtzckjBXiqsvmI4tt8xHtcmhMFFAn4qasDSf/+CVZ8eRZ62We4QiYjoItbbYx7CHnMiIuoHLMzJoYX7qPGXmbH4+PbxmDMqBAoJ+K6gDkvezUDa58dQVNcqd4hERHQR6u0xD2KPORER9QMW5jQgRPm5Y83VcfhoaSpmjAwGAHx9shY3vnMYf/1PLsoa2mSOkIiILiY17DEnIqJ+xMKcBpQhgR549pp4fHBbCqYND4RRAF8er8GiLYfw8NZMZFXoucwaERHZHMeYExFRf1LKHQDR7zE82BMvXDsaxzVN2PhjCX4sqsf2jApsz6jAsEAPXJsQhtmjQuHn7ip3qERE5GSMQnCMORER9SsW5jSgxYd64x8Lx+BodSN25tbi86xKFNa14uW9hVi/rwiXDw/C/LFhSIn2g4LrzBIRUT/Qt3Wiy9hzd1aQJwtzIiK6cCzMySmMCffBtIRI3P+HQfjyWA0+zanGiZpm/PeEFv89oUWUnxrXjgnDNWPC+CGKiIguSO/48gAPVyhdOCqQiIguHAtzcipeKiUWJUVgUVIEcjVN+DSnGl8dr0G5zoD//aEYG34sxpSYQMxPCMclQ/zhomAvOhERnR+OLyciov7GwpycVlyoNx4L9caDU4dh9wktPs2uRk5VI/bm12Fvfh1CvVWYNyYU88aEIcxHLXe4REQ0QPT2mAdzfDkREfUTFubk9NxdXTBvTBjmjQlDQW0LPsupxn+OaaBpasfmn0vxxs+luHSoP65NCMdlwwJ4WyIREf0mbVNPj3kIe8yJiKifsDCni0pMkCcevjwG900Zir15tfg0pwqHy/T4qagBPxU1IMDDFdeMDsP8hDBE+7vLHS4RETkgbQt7zImIqH+xMKeLkkqpwFXxIbgqPgRlDW347Eg1Pj9SjfrWTrx7qAzvHipD6iA/3JgcgcnDAjkWnYiITHrHmLPHnIiI+gsLc7roRfu74/4pQ3HPHwZjX2E9Psupxk9F9ThcqsPhUh2i/NS4MTkSc8eEwcPNRe5wiYhIZr1rmAexx5yIiPoJC3OiU5QuClw+IgiXjwhCdaMBH2dVYUd2Fcp1Brz4bQE2/FSM+QnhuCE5gpPFERFdxGo4xpyIiPoZZ7kisiLMR437pwzFzrsmYvUVwzHI3x3N7d1473A55r9xEGmfH0dOZaPcYRIRkZ21dxmhN3QB4BhzIiLqP+wxJ/oN7q4uWJwUgesSw/FjYT3ez6jA4VIdvj6pxdcntUgI98ZNKVG4fEQQlByHTkTk9HrHl6uUCvio+TGKiIj6B1sUonOgkCRMiQnElJhAnKxpxgcZFdiVW4Ocqibk7DyOMG8Vrk+OwPyEcHjzgxoRkdOqPW0Nc0niH2SJiKh/8FZ2ovMUG+KFJ2eNxP/dORHLLxkEf3dXVDe145XvizBn0368uCcf5bo2ucMkIiIbqDnVYx7sydvYiYio/7Brj+h3CvJ0w92ThmDZxEH46rgG76dXoLCuFR/9Uomtv1TisphA3JQSiXFRvuxVISJyElpTjzknfiMiov7DwpzoAqmUClybEI55Y8JwsESH9zPK8VNRA74rqMN3BXUYGeKFJSmRmDEyGK4uvEmFiGggM/WYszAnIqJ+xMKcqJ9IkoSJQ/wxcYg/iupa8WFGBb44psGJmmY8+eUJvPJ9Ea4YEYTLYgIxLtqXRToR0QDU22Me4s1b2YmIqP+wMCeygaGBHkibMQIrJg/BjuwqbP2lErUtHdiaWYmtmZXwdHPBpUP8MSUmEJOGBsDX3VXukImI6BzUsseciIhsgIU5kQ35ubvijxMH4ZbUKPxU1IB9hXXYV1CH+tZOfH2yFl+frIWLBCRG+mJKTCAuiwnE4AB3ucMmIqI+1PSOMefkb0RE1I9YmBPZgauLAlOHB2Lq8EAYhcDx6iZ8X1CH7wvqkV/bgoxyPTLK9fjnd4UYEuCOqxLCMT7cG2PCfeDC9dGJiByCEMK0jnkwb2UnIqJ+xMKcyM4UkoTR4T4YHe6DFZOHolJvwL6COnxfUIf0cj2K69uw8btCbERPj/ukYQG4LCYQlwz2h4ebi9zhExFdtPSGLnR0CwBAsCdvZSciov7DwpxIZhG+atwwLhI3jItEc3sX9hc34EC5Ht8cr4GurRNfHNXgi6MauLpISI32w2UxgZgSE4hQb34oJCL5bd++HWlpaRbbJUnC+PHjcfDgQYt9CxcuxLp16yy2Hzt2DAsWLDDbNnr0aGzfvr3/Ar4Avb3lfu6ucFNyAk8iIuo/LMyJHIiXSokZccG4afIwVGv0yKxoPHXLex3KdQb8XNyAn4sb8Pdv8hEX4oWZccGYOzoMfh6cPI6I5DF79mxMmTLF9LirqwtLly7FtGnTcO+996Kzs9O0LysrC3/605+wZMkSq+fKz89HfHw8Nm/ebNqmVDrOR5Vf1zDnbexERNS/HKe1IyIzShcFUqL9kBLthz9NHYbi+jZ8X9AzeVx2ZSNya5qRW9OM138sxvQRQViYGI7kSF9IEsekE5H9qNVqqNVq0+ONGzdCCIFVq1bBze3XAra7uxsvv/wyli9fjoSEBKvnKigoQExMDIKDg20e9+/R22MewhnZiYion7EwJxoAJEnC0EAPDA30wNIJ0ahv7cDe/Dp8ml2F45pm7MrVYleuFkMDPDB/bBjmjArlEmxEZHc6nQ6bN2/GM888Y1aUAz23vOv1etx55519Pr+goAAjR460dZi/W++M7EHsMScion7GwpxoAArwcMPCseFYODYcxzVN2J5VhV25NSiqb8XLewvx2g/FuDI2CAvGhmNshA970YnILj744AOEhIRg1qxZZtuFEHjjjTdw2223wdPTs8/nFxQUwGg0Yu7cuWhqasJll12G1atXw8vL67zi6I9feb3nOP1cv/aYu/XL/2Ev1nIZiJwlD8B5cnGWPADm4oicLY+zYWFONMDFh3rj/830xoNTh2FXbg0+yapCnrYFXxyrwRfHahAT5IGFY8Mxe1QovFR8yxORbQghsG3bNixfvtxi34EDB1BdXY3rr7++z+d3dnairKwMUVFRePbZZ9HY2Ih169bh0Ucfxeuvv35esQQGep93/OdyLn2HEQAwLNwXQUH993/YS3++LnJyljwA58nFWfIAmIsjcpY8zoaf0omchJdKiesSI7BwbDiOVvf0ov/3hBYFta14YU8BXvm+CFfFBWPh2HCMCvNmLzoR9aucnBxoNBrMmTPHYt+uXbtw2WWXwc/Pr8/nu7q6Yv/+/VCpVHB17RmK89xzz+G6666DRqNBaGjoOcdSV9cEIc47BTOS1PNh8PRzlde3AADcIVBb23Rh/4EdWctlIHKWPADnycVZ8gCYiyNytjzOhoU5kZORJAljwn0wJtwHD02LwZfHNfgkqwqFda34vyMa/N8RDWKDPbEwMRyz4kPg6cZfA0R04fbt24fU1FT4+vpa3Xf//fef9Rxn3rIeExMDAOddmAuBfvsQd/q5antnZfd0G5AfEvvzdZGTs+QBOE8uzpIHwFwckbPkcTayLsLZ3t6Oxx9/HKmpqZg8eTK2bNnS57F79+7Ftddei+TkZMydOxfffPONHSMlGpi81UpcnxyJD5em4I0bEzF7VAjcXCSc1Lbgua/zMXvDATy7+yRyNQOn54eIHFN2djbGjRtnsb2+vh5lZWVISUn5zefn5+cjOTkZZWVlpm3Hjx+HUqnE4MGD+z3e89XZbUR9a8/Sb1wujYiI+pushfnzzz+PI0eO4J133sGTTz6J9evX46uvvrI4Ljc3F/fffz+uu+46fPrpp7jxxhvx4IMPIjc3V4aoiQYeSZKQGOmLv10dh//cfQkemjYMg/3d0drZjR3Z1bj1vV9w23sZeD+9HEerm9DVbZQ7ZCIaYPLy8jB8+HCr21UqFaKioiz2tbS0oL6+HgAwbNgwDB48GE888QROnjyJw4cP44knnsDixYut9sLbW21LT2+5q4sEP656QURE/Uy2e1hbW1uxbds2bN68GaNHj8bo0aORl5eHf//73xazue7cuROXXHIJbrvtNgDA4MGDsWfPHnz55ZeIi4uTI3yiAcvX3RVLUqJw07hIZJTrsSO7CnvyanFc04zjmmYAgFqpwJhwb4yN9EVSpA8Swn04cRwR/aba2lr4+PhYbK+rq4OPj/XVIbZs2YIdO3Zgz549UCgUeP3117F27VrcfPPNUCgUmDt3LlavXm2P8M+qpqlnRvZgTzfO0UFERP1Otk/aubm56OrqQnJysmlbSkoKNmzYAKPRCIXi1878BQsWoLOz0+IcTU28/Zbo95IkCSnRfkiJ9kNDawe+PF6DQ6U6ZFU0oqm9C4fL9Dhcpu85FsDwYE8kRvggMdIXiZE+CPNW8cMpEZlkZ2db3T579mzMnj3b6r6VK1di5cqVpsfh4eFYv369TeK7UNre8eVeKpkjISIiZyRbYa7VauHv7w83t1/HaQUFBaG9vR06nQ4BAQGm7b2Tv/TKy8vDzz//jBtvvPG8/19brW06EDlLHgBzuVABnm64OTUKN6dGwSgEiupakVXRiMwKPbIqGlGhNyBP24I8bQs+zqoCAIR6u2FsRE+RnhTpi+HBnlAqfg2a18TxOEsegHPkMpBjvxhpW1iYExGR7chWmLe1tZkV5QBMjzs6Ovp8Xn19PVauXIlx48bhiiuuOO//11Zrmw5kzpIHwFz6S0iwDybGhZke1zQakF7SgEPFDUgvqcfRykZomjqw+4QWu09oAQCebi5IHuSP1CH+SB0cgKRBfgB4TRyRs+QBOFcu5Ni0vbeyc+I3IiKyAdkKc5VKZVGA9z5Wq9VWn1NbW4s//vGPEELglVdeMbvd/VzZam3TgchZ8gCYi60pAIwP98L4cC/g0mi0dXTjaHUTMiv0yK5oRFZlI1o6uvFDfi1+yK/teY4EJET54bKh/pg+IgjR/u7yJnEBHPGa/B7OkgfgHLmc67qm5BhqmlmYExGR7chWmIeGhqKhoQFdXV1QKnvC0Gq1UKvVVieP0Wg0psnf3n33XbNb3c+HrdY2HcicJQ+AudiL2tXFND4dALqNAoV1Labb37MrG1HV2I6sMh2yynR49fsijAj2xBWxQZg+IhhDAz3kTeB3cuRrcj6cJQ/AuXIhx9Y7xjyEt7ITEZENyFaYx8fHQ6lUIjMzE6mpqQCA9PR0JCQkWPSEt7a2Yvny5VAoFHj33XcRHBwsR8hE1AcXhYQRwV4YEeyFRUkRAHp6l7JqWvFZRhkOl+pMY9Q3/FiCoYEeuGJEEK6IDUZMkAcnkSMih6ft7TH3Zo85ERH1P9kKc3d3d8yfPx9r1qzBs88+i5qaGmzZsgXr1q0D0NN77u3tDbVajY0bN6K0tBT/+te/TPuAnlvevb15GyCRIwr1VmHJ0CDMjPFHQ2snvs+vw568WhwoaUBRXSveqCvFG/tLMcjfHdNHBOGK2CCMDPFikU5EDkcIwR5zIiKyKVkXJk5LS8OaNWuwdOlSeHl5YeXKlZg5cyYAYPLkyVi3bh0WLlyIXbt2wWAwYPHixWbPX7BgAZ577jk5Qiei8+Dn7op5CWGYlxCGJkMX9hXW4ZuTtdhfXI/Shja8fbAMbx8sQ4Sv2lSkjw7zZpFORA6hub0bhi4jACDIkz3mRETU/2QtzN3d3fH3v/8df//73y32nThxwvTvr776yp5hEZENeauVmD0qFLNHhaKlows/Ftbjm5O1+LGoHpV6A947XI73Dpcj1FuFy0cE4YoRQRgb6QMFi3QikknvxG8+aiXUri4yR0NERM5I1sKciC5unm5KzIwLwcy4ELR1duPnop4i/YfCemia2vFhRgU+zKhAkKcbLh8RhKnDAzEi2BP+7q7sTSciu9FyRnYiIrIxFuZE5BDcXV0wPTYY02OD0d5lxP7iBuzJ0+L7gjrUtnRgW2YltmVWAgC8VUoMCXDHoAAPDPZ3x+BT36P93OGmPP9lFImIfkvNqfHlwRxfTkRENsLCnIgcjkqpwNThgZg6PBAdXUYcKtVhT54Wh0p1qG5sR1N7F3KqmpBT1WT2PIUEhPuoMTjAHYP9Pcy+B3m6sZediH6XWtPEb+wxJyIi22BhTkQOzU2pwKRhAZg0LAAAYOjsRpmuDSX1bShpaD31vQ0l9a1o6ehGhd6ACr0BPxU1mJ3H080Fg07rXe/9PizIE0oFC3Yi6luN6VZ29pgTEZFtsDAnogFF7epiWjP9dEII1LV2oqS+1VSolza0obi+FZV6A1o6unFc04zjmmaz53m4uiAx0gcp0X5IifZFXIgXlC68HZ6IfqU13crOHnMiIrINFuZE5BQkSUKQpxuCPN2QEu1ntq+jy4hy/aledlPh3oai+hY0t3fj5+IG/Fzc08Pu7qpAYqQvUqJ8kRLth/hQL7hy3DrRRU3LHnMiIrIxFuZE5PTclAoMC/TEsEBPs+1GIZCvbUF6uR4ZZTpklOvRaOjC/uIG7D+jUJ8yMgTxge6IZ4860UWnhmPMiYjIxliYE9FFSyFJiA3xQmyIF24aF2lRqP9Srof+jEJdrVSYbn0fF+WLUWHecGWhTuS0urqNqG/hrOxERGRbLMyJiE6xVqgX1LYgo1yPHE0z9hfWQd/WhQMlOhwo0QH4tVAfF9UzRp2FOpFzqWvthADgopDg7+EqdzhEROSkWJgTEfVBIUkYEdxTqN8f5I0abSMKtK1IL9OZetX1BvNC3d1VgZRoP0wY7I+Jg/0wNMCDy7QRDWC948uDPN2g4HuZiIhshIU5EdE5UkgShgd7YniwJ2441aNeWNeKjDId0sv0SD9VqP9QWI8fCusB9IxJ7SnS/TFhsB8CPDhGlWggqWni+HIiIrI9FuZERL+TQpIwPMgTw4M8cX1yT6GeV9OCAyUNOFDSgMwKPWqaO7DzqAY7j2oAACOCPTHxVG96UqQv1K4uMmdBRL+Fa5gTEZE9sDAnIuonCknCyFAvjAz1wm0TomHo7EZWRSMOlDRgf0kD8rQtpq/3DpfDzUVCUqTvqULdHyNCPHmrLJGD4RrmRERkDyzMiYhsRO3qgolD/DFxiD8eAFDX0oFDpTocKGnAwZIG1DR34GCpDgdLdXh1XxH83V0xYbCf6db3UG/20BHJrXeMeQh7zImIyIZYmBMR2UmgpxtmxYdgVnwIhBAorm8z3faeXqZDQ1snduVqsStXCwAYEuCO1Gg/JET4YGyEDyJ91ZxIjsjOTD3m3uwxJyIi22FhTkQkA0mSMDTQA0MDPXDjuEh0dhuRU9WIAyU6HCxpwLHqJhTXt6G4vg0fZ1UBAAI8XJEQ7oOECB8kRHhjVKg3x6gT2ZhpjLkne8yJiMh2WJgTETkAVxcFxkX5YVyUH1ZMGoJGQycOl+mRWa5HTlUjcjXNqG/txHcFdfiuoA5Az7rKscGeSAjv6VFPiPBBuI+KvepE/UjbxDHmRERkeyzMiYgckI/aFdNHBGH6iCAAQHuXEbmaJuRUNSGnshE5VY3QNnfguKYZxzXN2JpZCaDndvmEcO+eQj3cB3GhXuxVJ/qdmgydaO3sBgCEcM4HIiKyIRbmREQDgEqpQGKkLxIjfQEAQghomtqRXdmInKomZFc24kRNM+paOrA3vw5783t61ZUKCbEhXj3FeqQPpsS7wM0o4MJedaKz0jT23MbupXKBO//ARURENsTCnIhoAJIkCWE+aoT5qDEzLgQAYOjsRq6mGTlVjaaCva6lA8eqm3Csugkf/VIJ7MyFi0JCuI8Kkb5qRPq6I9JXjQhfNSL91Ij0VcNH7SpzdkSOQdNoAMA1zImIyPZYmBMROQm1qwuSonyRFPVrr3pVY7vp1vecykbk17aio9uIcp0B5ToDAJ3FebxVyp6i3U+NCJ9fC/ZIX3eE+ajg6qKwb2JEMqnWnyrMPTm+nIiIbIuFORGRk5IkCRGnesOvig+BJAEBAV44XlKHcl0bKnQGVOoNqDjtq66lA03tXcitaUZuTbPFORUSEOqtMvWyR/m5Y2yED0aHcYZ4cj7VvT3mHF9OREQ2xsKciOgiolBICPVWIcRLhXFRlvvbOrvNi3Vdm9nj9i4jqhrbUdXYDpTpTc9zdZEwJswb46L9MC7KF2MjfFio04DXeyt7CGdkJyIiG2NhTkREJu6uLogJ8kRMkKfFPiEE6lo7UaFrMxXqRXWtyKzQQ9vcgV8qGvFLRSPeRM+kc6PDvDEu2vdUoe4LDzcW6jSwmG5l5xhzIiKyMRbmRER0TiRJQpCnG4I83UyzwwM9BXuZzoCMMh0yyvVIL9OhprkDWZWNyKpsxFsHyuCikDAq1MvUo54Y6QNPNzZBzmD79u1IS0uz2C5JEnJzc7FixQrs2bPHbN+GDRtw+eWXWzxHCIGXXnoJH3/8MYxGIxYtWoRVq1ZBoZBnXgNNU8+s7OwxJyIiW+OnIiIiuiCSJGGQvzsG+btj/thwCCFQoTcgo0yPjPKeYr2qsb1nDfaqJrxzsAwuEhAX6o1xUb4YF+2LpEhfeKnYJA1Es2fPxpQpU0yPu7q6sHTpUkybNg0AUFBQgBdeeAGXXnqp6RhfX98zTwMAeOutt7Bz506sX78eXV1dePTRRxEYGIg77rjDpjn0RXOqxzyIPeZERGRj/BRERET9SpIkRPm5I8rPHfMSwgAAlXpDT5FepkdGuR4VegOOVjfhaHUT/nW4HAoJGBniheQoX4wf5IfkKF/2qA8QarUaarXa9Hjjxo0QQmDVqlXo6OhAeXk5EhISEBwcfNZzvfvuu3jggQeQmpoKAFi1ahX++c9/ylKYdxsFtM3sMSciIvvgpx4iIrK5ntnhw3DN6J5CvbrRgIxyvalXvUxnwHFNM45rmvF+egVcFBISwr0xYZA/Jgz2w+gwbyi5TJvD0+l02Lx5M5555hm4ubkhNzcXkiQhOjr6rM/VaDSoqqrC+PHjTdtSUlJQUVGBmpoahISE2DJ0C/WtHeg2CrhIQIAHC3MiIrItFuZERGR3YT5qzB6lxuxRoQCAmqZ20/j0Q6U6VOgNyKxoRGZFIzb9XAIPVxeMi/bFhMH+mDDIDzFBHjJnQNZ88MEHCAkJwaxZswAAhYWF8PLywurVq3Hw4EGEhYVh5cqVmDp1qsVztVotAJgV4EFBQQCA6urq8yrMJelCsjgVT3MHACDQ0w1Kl344oYx6X4/+eF3k5Cx5AM6Ti7PkATAXR+RseZwNC3MiIpJdiLcKs+JDMCu+p/gq17XhUKkOB0t0OFymg66tEz8U1uOHwnoAPcXSZbHBGBvqifGD/BHKdaZlJ4TAtm3bsHz5ctO2wsJCGAwGTJ48GXfddRd2796NFStW4KOPPkJCQoLZ8w2GnvHcbm6/9k73/rujo+O8YgkM9P69afwaj6YFABDu74GgoAs/nyPoj9fFEThLHoDz5OIseQDMxRE5Sx5nw8KciIgcTu8Y9QVjw2EUAnnaFhwsacDBUh1+KdejrqUDO36pwI5Txw/2dzf1pqdE+8FbzebN3nJycqDRaDBnzhzTtnvvvRe33nqrabK3uLg4HD16FFu3brUozE8vwlUqlenfAODu7n5esdTVNUGI350KAKCgSg8ACFC7oLa26cJOJjNJ6vlg2x+vi5ycJQ/AeXJxljwA5uKInC2Ps+EnFyIicmgKScLIEC+MDPHCreOj0dFlRE5VI45oW7E3V4Nj1U0oaWhDSUMbtmVWQiEBo8K8MWGQH8YP8seoMG+uoW4H+/btQ2pqqtmM6wqFwmIG9mHDhiE/P9/i+aGhPcMatFotoqKiTP8GcE4Tx51OCFzwh7iaU0ulBXmqBvQHwtP1x+viCJwlD8B5cnGWPADm4oicJY+zYWFOREQDiptSgdRBfpg1LhrLUiLQ2NaF9DIdDpbqcKi0AcX1bThS1YQjVU3YcqAMAOCjViLES4VQb8uvEG8VQrzcoHZl8X4hsrOzMW7cOLNtjz32GCRJwrp160zbcnNzERsba/H80NBQREREID093VSYp6enIyIiwu4TvwG/jjEP8ebEb0REZHsszImIaEDzVisxbUQQpo3omShM09SOQ6UNOFjSM5FcbUsHGg1daDR0Ib+2pc/z+Lm7mhfsXm4I9Tn9sQqunBm+T3l5eZg3b57ZtunTp+Phhx/GxIkTkZycjM8//xzp6el46qmnAAAtLS1ob29HQEAAAOCmm27Ciy++iLCwntn7X3rpJdx+++32TeSUmlNLpQVzDXMiIrIDFuZERORUQr1VuGb0r0uzNbd3oaa5HZqmdmgaT30/48vQZYSurRO6tk6cqGm2el4JQICnG8ZG+ODZOXFcvu0MtbW18PHxMds2c+ZMPPnkk3j99ddRWVmJESNG4I033jD1iG/ZsgU7duzAnj17AAB33HEH6urqcP/998PFxQWLFi3CsmXL7J0KAKC2t8eca5gTEZEdsDAnIiKn5qVSwkulxLBAT6v7hRBoau+yWrD3ftU0taOjW6CupQP7CuqgN3Qh0JMF2+mys7Otbl+8eDEWL15sdd/KlSuxcuVK02MXFxekpaUhLS3NJjGeDy+VEm5KBYYFWf+5ISIi6k8szImI6KImSRJ81K7wUbtiRLCX1WOEENC1dULT1A4ftSuL8ovAK9eNgdJDBXV390Ux6RAREcmLhTkREdFZSJIEfw83+HuwIL9YeKmUCPL3GPBLpRER0cDAAXJEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjpdwB2Jsk9d85+uNccnKWPADm4oicJQ/AeXJxljwA58hlIMfu6NjWm3OWXJwlD8B5cnGWPADm4oicLY+zHieEELYNhYiIiIiIiIj6wlvZiYiIiIiIiGTEwpyIiIiIiIhIRizMiYiIiIiIiGTEwpyIiIiIiIhIRizMiYiIiIiIiGTEwpyIiIiIiIhIRizMiYiIiIiIiGTEwpyIiIiIiIhIRizMiYiIiIiIiGTEwrwP7e3tePzxx5GamorJkydjy5YtfR577NgxLF68GImJibjuuutw5MgRO0b62zQaDR544AFMmDABU6ZMwbp169De3m712BUrVmDkyJFmX99++62dI+7b7t27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+MxcdDqdeOyxx8TEiRNFcnKyWLVqldDpdHaJmwYWZ2jrhXCu9p5tPdt6W3GWtv7MXIQYuO0923pzkhCn7ssiIiIiIiIiIrvjrexEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjFuZEREREREREMmJhTkRERERERCQjpdwBEJFjyczMxNdff211n5eXF+655x4AwHPPPQel0vJXSGtrK+655x6EhITYNE4iIiL6/djeEzkWFuZEZKarqwurVq2yuu/w4cOmf1955ZVITU21OKa8vBxGo9Fm8REREdGFY3tP5Fh4KzsRERERERGRjFiYExEREREREcmIhTkRERERERGRjFiYExEREREREcmIhTkRERERERGRjFiYExEREREREcmIy6URkRkhBF588UWr+1QqlWnJlC+//BJ79+61OKapqQkrVqywZYhERER0gdjeEzkWSQgh5A6CiIiIiIiI6GLFW9mJiIiIiIiIZMTCnIiIiIiIiEhGLMyJiIiIiIiIZMTCnIiIiIiIiEhGLMyJiIiIiIiIZMTCnIiIiIiIiEhGLMyJiIiIiIiIZMTCnIiIiIiIiEhGLMyJiIiIiIiIZMTCnIiIiIiIiEhGLMyJiIiIiIiIZPT/AYH0RWW4RhoJAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化损失和准确率曲线\n",
    "plt.figure(figsize=(12, 5))\n",
    "\n",
    "# 损失曲线\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.plot(train_losses, label='训练损失')\n",
    "plt.plot(test_losses, label='测试损失')\n",
    "plt.xlabel('轮次')\n",
    "plt.ylabel('损失值')\n",
    "plt.legend()\n",
    "plt.title('损失曲线')\n",
    "\n",
    "# 准确率曲线\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.plot(train_accuracies, label='训练准确率')\n",
    "plt.plot(test_accuracies, label='测试准确率')\n",
    "plt.xlabel('轮次')\n",
    "plt.ylabel('准确率 (%)')\n",
    "plt.legend()\n",
    "plt.title('准确率曲线')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 预测结果可视化\n",
    "展示FashionMNIST测试集中前10个样本的图像、真实标签和预测标签。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T07:02:41.982223Z",
     "start_time": "2025-06-13T07:02:40.674177Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30495 (\\N{CJK UNIFIED IDEOGRAPH-771F}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36381 (\\N{CJK UNIFIED IDEOGRAPH-8E1D}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 38772 (\\N{CJK UNIFIED IDEOGRAPH-9774}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22871 (\\N{CJK UNIFIED IDEOGRAPH-5957}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22836 (\\N{CJK UNIFIED IDEOGRAPH-5934}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 34923 (\\N{CJK UNIFIED IDEOGRAPH-886B}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 35044 (\\N{CJK UNIFIED IDEOGRAPH-88E4}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 23376 (\\N{CJK UNIFIED IDEOGRAPH-5B50}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 34924 (\\N{CJK UNIFIED IDEOGRAPH-886C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22806 (\\N{CJK UNIFIED IDEOGRAPH-5916}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20937 (\\N{CJK UNIFIED IDEOGRAPH-51C9}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 38795 (\\N{CJK UNIFIED IDEOGRAPH-978B}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36816 (\\N{CJK UNIFIED IDEOGRAPH-8FD0}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 21160 (\\N{CJK UNIFIED IDEOGRAPH-52A8}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 38598 (\\N{CJK UNIFIED IDEOGRAPH-96C6}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32467 (\\N{CJK UNIFIED IDEOGRAPH-7ED3}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26524 (\\N{CJK UNIFIED IDEOGRAPH-679C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 65288 (\\N{FULLWIDTH LEFT PARENTHESIS}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 21069 (\\N{CJK UNIFIED IDEOGRAPH-524D}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20010 (\\N{CJK UNIFIED IDEOGRAPH-4E2A}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26679 (\\N{CJK UNIFIED IDEOGRAPH-6837}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26412 (\\N{CJK UNIFIED IDEOGRAPH-672C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 65289 (\\N{FULLWIDTH RIGHT PARENTHESIS}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxsAAAGyCAYAAACMUtnGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNAUlEQVR4nO3deZRU1bn38QeVRmaasUFsZhpEERxQJknAqKBxiBBDcvXGhJBgjMbrdUzyXkWj0aWJNxATiFM0EY1GEw2oRK7KoGiYBKLMNHSDNCAyDw3S7x9ZYeXs5wd9aHp39fD9rJW1sh92ndpdteuc2tZ59lOrpKSkxAAAAACgnB2X6QEAAAAAqJ5YbAAAAACIgsUGAAAAgChYbAAAAACIgsUGAAAAgChYbAAAAACIgsUGAAAAgChYbAAAAACIgsUGAAAAgChYbABV2O233255eXmH/d/rr79eLs/z/vvvW15enr3//vtH7JeXl2fjxo0rl+f8d//6O8877zwrKSmRfR566CHLy8uzq6+++lDs6quvtlNOOcUWLVokHzN48GC7/fbbD7XHjRtneXl5iT4HDhywp556yq644grr1auX9e7d26644gp74oknrLi4+FC/I70P//rfSy+9dCwvAyqhAwcO2Fe/+lU573ft2mV333239e/f33r37m3f+c53bNWqVRkYJQBkzgmZHgCAY9OiRQsbP368/Lf27dtX6Fief/55y8nJiXLs4447zoqKimzevHl25plnun+fMmWKfNznn39ud9xxh7300kuWlZV11M/7k5/8xKZOnWqjR4+2U0891Q4ePGhz5syxRx55xObOnWu/+tWvzOyff/u/u+qqq2z48OE2YsSIQ7Hc3FwzMysqKrKJEycedjzFxcU2evRoa9Wq1aHYpEmTbO3atYcdZ25uro0cOfJQm+eI+xxmZvv27bNbb73VPvzwQxs4cKB73M0332wffvih3XLLLdagQQMbP368XXPNNTZ58mRr3Lhxpf77jvY5AOBwWGwAVVxWVpb16tUr08MwM4s6jtatW1tJSYm99tprbrGxYMECKyoqsq5du7rHNWzY0JYvX26/+tWv7Kabbjqq51y/fr29/PLLNnbsWPvqV796KD5w4EBr2rSp3XfffbZw4ULr2bOn/NtzcnJkfO/evXbttdda27Zt5fMWFhba3r17E7F27dod8cvdu+++y3NU4HPMmTPHxo4da0VFRfIx8+fPt7feessmTpxogwYNMjOzs846y4YMGWLPPvusjRkzplL/fUf7HABwONxGBVRzn3/+uU2cONEuueSSQ1+Kv/a1r9ns2bMP9dm7d6/ddddddt5559mpp55qF110kT3++OPuWKtWrbJvf/vbdvrpp1v//v3toYcesgMHDhz69/A2qo0bN9odd9xhgwYNsp49e9rw4cNt2rRpiWPm5eXZH/7wB/vRj35kffr0sd69e9uNN95omzdvds9/0UUX2dSpU92tVFOmTLF+/fpZkyZN3GO6d+9ul19+uT322GO2ePHi1K+bmdnmzZutpKTEDh486P7ty1/+sv3Xf/2XNWrU6KiOiephzJgx1qZNm8PeGjdz5kyrV6+eDRgw4FCsadOmdvbZZ9s777xTUcMEgIxjsQFUAwcOHHD/+9cX8oceesgeffRRu+qqq+yxxx6ze+65x7Zu3Wo33nij7dmzx8zM7rvvPps+fbrddttt9vjjj9uQIUPswQcftD/96U+J57n//vvtzDPPtN/85jc2dOhQ++1vf2vPPfecHNPmzZtt+PDhNmfOHLvpppts3LhxdtJJJ9n3v/99e+WVVxJ9f/GLX9jBgwft5z//ud1666321ltv2X333eeOOWzYsEO3Uv3LwYMH7fXXX7eLL774sK/PnXfeadnZ2XbHHXck8ixK061bN2vdurXdf//9dvfdd9v06dNt586dZvbPL47f/e53K/xWNVQOv//97+03v/mNnXTSSfLfV65caW3btrXjjz8+Ec/NzbXVq1dXxBABoFLgNiqgilu3bp316NHDxW+++WYbPXq0bdy40W666aZE4nSdOnXsBz/4gS1dutR69eplH3zwgfXv3//QF/ZzzjnH6tWrZ82aNUsc85prrrHrrrvOzMzOPfdce/PNN2327Nn2H//xH+75n3zySduyZYu98cYbh76QDRo0yL75zW/agw8+aJdccokdd9w//3tH165d7f777z/02IULF8rk9tNOO81OPvnkxK1Uc+bMsa1bt9r555/vFkf/0rhxYxs7dqyNGTPmqG6nysrKsokTJ9qtt95qzz77rD377LN23HHHWY8ePWzo0KH2jW98w0488cRUx0L1Em4kENqxY4c1aNDAxevXr2+7du2KNSwAqHRYbABVXIsWLezXv/61i/8rUfvh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",
      "text/plain": [
       "<Figure size 1000x500 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# FashionMNIST类别名称\n",
    "fashion_classes = ['T恤/上衣', '裤子', '套头衫', '连衣裙', '外套', '凉鞋', '衬衫', '运动鞋', '包', '踝靴']\n",
    "\n",
    "# 可视化预测结果\n",
    "model.eval()\n",
    "with torch.no_grad():\n",
    "    images, labels = next(iter(test_loader))\n",
    "    images, labels = images.to(device), labels.to(device)\n",
    "    outputs = model(images)\n",
    "    _, predicted = torch.max(outputs, 1)\n",
    "\n",
    "# 显示前10个样本\n",
    "plt.figure(figsize=(10, 5))\n",
    "for i in range(10):\n",
    "    plt.subplot(2, 5, i + 1)\n",
    "    plt.imshow(images[i][0].cpu(), cmap='gray')\n",
    "    plt.title(f\"真实: {fashion_classes[labels[i].item()]}\\n预测: {fashion_classes[predicted[i].item()]}\")\n",
    "    plt.axis('off')\n",
    "plt.suptitle('FashionMNIST测试集预测结果（前10个样本）')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实验总结\n",
    "- 成功使用PyTorch构建了LeNet-5卷积神经网络，应用于FashionMNIST图像识别任务\n",
    "- 通过20个epoch的训练，模型在FashionMNIST测试集上的准确率达到85%以上\n",
    "- 可视化了训练和测试的损失及准确率曲线，展示了模型的收敛过程\n",
    "- 可视化了测试集样本的图像、真实标签和预测标签，直观展示了模型的分类效果\n",
    "## 结论\n",
    "LeNet-5卷积神经网络在FashionMNIST数据集上表现优异，测试准确率超过85%，证明了其在灰度图像分类任务上的有效性。相比全连接网络，卷积层的引入显著提升了模型对图像特征的提取能力。损失曲线显示模型快速收敛，无明显过拟合现象。预测结果可视化表明模型能够准确识别大多数服装类别。后续可尝试调整超参数（如学习率、卷积核大小）或添加正则化（如Dropout）以进一步提升性能。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
